【发布时间】:2019-01-30 07:29:25
【问题描述】:
我是 SQL 新手(在这种情况下为 PostgreSQL),无法弄清楚如何将两个不同的条件应用于同一行以返回两个不同的行。这可能是因为我无法说出我正在尝试做的事情,我想我找不到答案......
一个例子:给定这个数据,
table_clothes
user_id | clothes | is_blue
---------------------------
1 | skirt | t
2 | t-shirt | f
3 | socks | t
我希望能够选择:
1/ 每个用户穿着的不同蓝色衣服的数量
SELECT
user_id,
COUNT(DISTINCT clothes) AS nb_blue_clothes
FROM table_clothes
WHERE is_blue
GROUP_BY user_id;
2/ 人类穿着的不同衣物的数量
SELECT
user_id,
COUNT(DISTINCT clothes) AS nb_clothes
FROM table_clothes
GROUP_BY user_id;
有没有办法将这两个 SELECT 加入到一个查询中,这样会产生类似的结果:
user_id | nb_blue_clothes | nb_clothes
--------------------------------------
1 | 45 | 67
2 | 4 | 48
3 | 89 | 103
知道我应该学习什么来解决这个问题吗?
感谢您的帮助!
【问题讨论】:
-
我有点恼火:1是兽人,不是人类。为什么要计数?
-
谢谢@S-Man 我忘了删除我的示例中被证明与解决我的问题无关的部分
标签: sql postgresql