Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 November 10

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
ILYA
А чем оно от стандартного select count (*) from t1 отличается то?
Выражение и список полей чем отличаются?
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Evgeniy Kovel
Подскажите, если не затруднит!

Есть запрос
SELECT COUNT(DISTINCT
Table1.*)
FROM
Table1,Table2
WHERE
Table1.Key1=Table2.Key1

В результате получим количество уникальных записей из таблицы1 ключи которой есть в таблице2

Можно ли написать запрос так, чтобы при условии если количество строк =1 то верни эту строку, иначе ничего?

Чтобы не писать два почти идентичных запроса
Тут не CASE нужен, а подзапрос.
источник

I

ILYA in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Выражение и список полей чем отличаются?
Ну выражение превращается в список всех полей в данном случае, я не говорю что запрос составлен грамотно, реояционно итд. Но не вижу причин ему не работать
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
ILYA
Ну выражение превращается в список всех полей в данном случае, я не говорю что запрос составлен грамотно, реояционно итд. Но не вижу причин ему не работать
А так будет более правильно?

SELECT COUNT(DISTINCT
Table1.Key1)
FROM
Table1,Table2
WHERE
Table1.Key1=Table2.Key1
источник

I

ILYA in SqlCom.ru - Стиль жизни SQL
Evgeniy Kovel
А так будет более правильно?

SELECT COUNT(DISTINCT
Table1.Key1)
FROM
Table1,Table2
WHERE
Table1.Key1=Table2.Key1
Так я же не знаю что вы именно получить хотите, count(*) и count(t1) это же разные вещи
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
ILYA
Так я же не знаю что вы именно получить хотите, count(*) и count(t1) это же разные вещи
Понял
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
Не получается внедрить в CASE

SELECT DISTINCT
COUNT(ModelMash.KeyModelMash)
FROM
ModelMash,Mash
WHERE
ModelMash.KeyManufMash=1
AND
ModelMash.KeyModelMash=Mash.KeyModelMash

Если количество = 1 Вернуть строку, если количество >1 вернуть NULL
MS SQL 2008
источник

E

Elena Kuz in SqlCom.ru - Стиль жизни SQL
Добрый вечер!
источник

E

Elena Kuz in SqlCom.ru - Стиль жизни SQL
#работа #Москва #офис
Ищем программиста/разработчика для внедрения решений Informatica (управление данными).
ЗП: до 200к на руки
Город: Москва, м. Динамо
Формат работы: офис
Занятость: полная
Компания: DIS Group

По всем вопросам пишите: @Very_merry
или почта: e.kuznetsova@hr-cooke.ru

@Very_merry
или почта: e.kuznetsova@hr-cooke.ru

Важно: Наша компания обеспечит все необходимое обучение по используемым технологиям и решениям (мы являемся сертифицированным учебным центром).

Informatica:
•  реализация ETL-проектов по: интеграции, синхронизации, миграции данных; построению и загрузке хранилищ данных, управлению нормативно-справочной информацией и других с использованием средств Informatica.

Ожидания по опыту:
•  Знание реляционных баз данных, уверенное владение SQL;
•  Английский язык на уровне чтения технической литературы.

Приветствуется:
•  Понимание принципов построения хранилищ данных;
•  Навыки оптимизации производительности приложения;
•  Знание Java (понимание Core Java, знание классических алгоритмов и структур данных, работа с реляционными и не-реляционными данными, опыт разработки многопоточных приложений);
•  Знание NoSQL баз данных.

Условия:
•  Зарплатная вилка 150-200 тыс. руб. (все выплаты осуществляются в соответствии с трудовым законодательством РФ);
•  Оформление в соответствие с ТК РФ;
•  Премии;
•  Компенсация разговоров по мобильному телефону;
•  ДМС;
•  Возможность карьерного и профессионального роста;
•  Регулярные внешние и внутренние курсы.
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Evgeniy Kovel
А так будет более правильно?

SELECT COUNT(DISTINCT
Table1.Key1)
FROM
Table1,Table2
WHERE
Table1.Key1=Table2.Key1
да
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
Evgeniy Kovel
Не получается внедрить в CASE

SELECT DISTINCT
COUNT(ModelMash.KeyModelMash)
FROM
ModelMash,Mash
WHERE
ModelMash.KeyManufMash=1
AND
ModelMash.KeyModelMash=Mash.KeyModelMash

Если количество = 1 Вернуть строку, если количество >1 вернуть NULL
MS SQL 2008
С CASE такой номер не пройдёт.
Он может возвращать только одно значение.
источник

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
Evgeniy Kovel
Не получается внедрить в CASE

SELECT DISTINCT
COUNT(ModelMash.KeyModelMash)
FROM
ModelMash,Mash
WHERE
ModelMash.KeyManufMash=1
AND
ModelMash.KeyModelMash=Mash.KeyModelMash

Если количество = 1 Вернуть строку, если количество >1 вернуть NULL
MS SQL 2008
Для этого exists существует
источник

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
Если я правильно понял задачу
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
Не совсем.
В данном случае я в программе и выполняю проверку первым запросом с COUNT и если он вернул единицу, то повторяю запрос, но уже без COUNT который возвращает строку.
Я надеялся получить один запрос, который бы возвращал либо NULL либо ту самую единственную строку.
источник

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
Select * from table1 where exists (select count (id) from table1 where table1.key = table2.key) ?
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
Фактически оператор EXISTS не возвращает строки, а лишь указывает, что в базе данных есть как минимум одна строка, которая соответствует данному запросу
(а мне нужно вернуть строку)
источник
2020 November 11

R

Randomnickname in SqlCom.ru - Стиль жизни SQL
If (select count(id) from table1 where table1.key = table2.key) = 1 begin
Запрос на нужную строку
end else null ?
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
Да
источник

S

Senya in SqlCom.ru - Стиль жизни SQL
Evgeniy Kovel
Подскажите, если не затруднит!

Есть запрос
SELECT COUNT(DISTINCT
Table1.*)
FROM
Table1,Table2
WHERE
Table1.Key1=Table2.Key1

В результате получим количество уникальных записей из таблицы1 ключи которой есть в таблице2

Можно ли написать запрос так, чтобы при условии если количество строк =1 то верни эту строку, иначе ничего?

Чтобы не писать два почти идентичных запроса
select table1.* from table1
where exists (select 1 from table2 where key1 = table1.key1 having count(*) = 1)
источник

EK

Evgeniy Kovel in SqlCom.ru - Стиль жизни SQL
Senya
select table1.* from table1
where exists (select 1 from table2 where key1 = table1.key1 having count(*) = 1)
Благодарю! попробую
источник