sql - SQL 计数不同的输出不是所希望的
问题描述
%%sql
SELECT
COUNT(DISTINCT c.email) CountRockListeners
FROM
customer c
JOIN invoice i ON c.customer_id = i.customer_id
JOIN invoice_line il ON i.invoice_id = il.invoice_id
JOIN track t ON il.track_id = t.track_id
JOIN genre g ON t.genre_Id = g.genre_Id
WHERE g.name = 'Rock' OR g.name = 'Pop'
我有这个 SQL 代码,想返回 Rock 和 Pop 监听器的计数,但它只返回 Rock 的计数,即 59 .Pop 是 32。所以我希望它返回 59+32 请指教?
解决方案
也许你想要条件聚合:
SELECT COUNT(DISTINCT c.email) as cnt_either
COUNT(DISTINCT CASE WHEN g.name = 'Rock' THEN c.email END) as cnt_rock,
COUNT(DISTINCT CASE WHEN g.name = 'Pop' THEN c.email END) as cnt_pop
FROM customer c JOIN
invoice i
ON c.customer_id = i.customer_id JOIN
invoice_line il
ON i.invoice_id = il.invoice_id JOIN
track t
ON il.track_id = t.track_id JOIN
genre g
ON t.genre_Id = g.genre_Id
WHERE g.name IN ('Rock', 'Pop')
推荐阅读
- firebase - 添加应用插件时出错:'com.google.gms.google-services'
- ssl - 带有代理的 Web 请求是否总是需要新的连接?
- c# - 无法理解 IdentityTokenLifetime 以及我的 JWT 持续多长时间
- java - 具有许多占位符的 ItemStack
- python - 没有 dtype 的 pandas 中的平均值
- c++ - 条件编译模板中 std::enable_if<> 的六种不同用法
- reactjs - 不能使用
里面 映射数组时[React Leaflet] - android - Room Persistence 库数据库被锁定(代码 5)
- sql - 连续年月总和
- nginx - 来自 chrome 的 net::ERR_HTTP2_PROTOCOL_ERROR 200