Вложенный выбор с подсчетом различного и группированием по - PullRequest
0 голосов
/ 01 июня 2018

Итак, я пытаюсь получить 2 набора или результаты из одной и той же таблицы, сгруппированные по 3-му столбцу. Лучше я позволю своему примеру объяснить;

SELECT
  (SELECT COUNT(DISTINCT id)
  FROM Database
    WHERE Status NOT LIKE 'closed') AS ColumnA,

  (SELECT COUNT(DISTINCT id)
  FROM Database
    WHERE Status NOT LIKE 'closed' AND Datevalue <= getdate()) AS ColumnB

Group By ColumnC

Теперь я знаю, что это не так / неработать, но это объясняет, чего я хочу.Если я покидаю группу, тогда я получаю цифры в целом, но я хочу, чтобы они группировались по другой колонке.

Ум тает, готов к просветлению.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Попробуйте это

    SELECT ColumnC,
    COUNT(DISTINCT CASE WHEN Status NOT LIKE 'closed' THEN id END) as  ColumnA,
    COUNT(DISTINCT CASE WHEN Status NOT LIKE 'closed' AND  Datevalue <= getdate() THEN id END) as  ColumnB
    FROM mydatabase
    GROUP BY ColumnC
0 голосов
/ 01 июня 2018

Это то, что вы хотите?

select columnC,
       count(distinct case when Status <> 'closed' then id end) as columnA,
       count(distinct case when Status <> 'closed' and datevalue <= getdate() then id end) as columnb
from database  -- a very curious name for a table
group by ColumnC;
...