Я написал такой подзапрос:
Select ID, count(*) as cn from xyz group by 1
Результаты в выводе-
Я БЫ | Сп |
---|---|
А | 3 |
Б | 45 |
Теперь я делаю этот запрос -
SELECT CASE
WHEN temp.cn > 10 THEN Count(DISTINCT id)
END AS cn_10,
CASE
WHEN temp.cn <= 10 THEN Count(DISTINCT id)
END AS cn_9
FROM (SELECT id,
Count(*) AS cn
FROM xyz
GROUP BY 1) AS temp;
надеясь получить вывод, как
cn_10 | cn_9 |
---|---|
300 | 400 |
Но я продолжаю получать эту ошибку,
SQL compilation error: [temp.cn] is not a valid group by expression
🤔 А знаете ли вы, что...
SQL поддерживает транзакции, обеспечивая целостность данных.
Вы можете использовать выражение case в агрегации, как показано ниже, конечно, не проверено, но работает ли это для вас?
select
Count(case when cn > 10 then 1 end) cn_10,
Count(case when cn <= 10 then 1 end) cn_9
from (
select id, Count(*) cn
from xyz
group by Id
)t;