gpt4 book ai didi

sql - 计数为零的项目列表不存在

转载 作者:行者123 更新时间:2023-11-29 12:29:07 25 4
gpt4 key购买 nike

如果我有一个 t1 表:

my_col
------
foo
foo
bar

我有一个包含 foohello 的列表

如何获取:

my_col | count
-------|-------
foo | 2
hello | 0

如果我这样做

SELECT my_col, COUNT(*) 
FROM t1
WHERE my_col in ('foo', 'hello')
GROUP BY my_col

我明白了

my_col | count
-------|------
foo | 2

hello 没有任何值(value)。

我特别希望这是对项目列表的引用,因为它将在列表是变量的程序中调用。

最佳答案

理想情况下,您应该维护一个单独的表,其中包含您希望在报告中显示的所有可能的列值。如果没有,我们可以尝试在此处使用 CTE:

WITH cte AS (
SELECT 'foo' AS my_col UNION ALL
SELECT 'bar' UNION ALL
SELECT 'hello'
)

SELECT
a.my_col,
COUNT(b.my_col) AS count
FROM cte a
LEFT JOIN t1 b
ON a.my_col = b.my_col
WHERE
a.my_col IN ('foo', 'hello')
GROUP BY
a.my_col;

enter image description here

Demo

关于sql - 计数为零的项目列表不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54351316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com