带计数/分组的mySQL查询
我有以下数据:带计数/分组的mySQL查询,mysql,sql,Mysql,Sql,我有以下数据: ID user value lang ------------------------------ 1 1 foo1 de 2 1 foo2 de 3 1 bar1 en 4 1 bar2 en 5 1 bar3 en 6 1 bar4 fr 期望输出: user de en f
ID user value lang
------------------------------
1 1 foo1 de
2 1 foo2 de
3 1 bar1 en
4 1 bar2 en
5 1 bar3 en
6 1 bar4 fr
期望输出:
user de en fr
------------------------------
1 2 3 1
我想从用户1获取所有语言的总数
我试过使用
COUNT
、SUM
和HAVING
。。但它不起作用。您可以使用条件聚合
SELECT user,
SUM(CASE WHEN lang='de' THEN 1 ELSE 0 END) as 'de',
SUM(CASE WHEN lang='en' THEN 1 ELSE 0 END) as 'en',
SUM(CASE WHEN lang='fr' THEN 1 ELSE 0 END) as 'fr'
FROM t
GROUP BY user
或直接无条件:
SELECT user,
SUM(lang='de') as 'de',
SUM(lang='en') as 'en',
SUM(lang='fr') as 'fr'
FROM t
GROUP BY user
您可以使用条件聚合
SELECT user,
SUM(CASE WHEN lang='de' THEN 1 ELSE 0 END) as 'de',
SUM(CASE WHEN lang='en' THEN 1 ELSE 0 END) as 'en',
SUM(CASE WHEN lang='fr' THEN 1 ELSE 0 END) as 'fr'
FROM t
GROUP BY user
或直接无条件:
SELECT user,
SUM(lang='de') as 'de',
SUM(lang='en') as 'en',
SUM(lang='fr') as 'fr'
FROM t
GROUP BY user
您可以添加您尝试过的内容吗?您是否按分组?是否可以添加您尝试过的内容?您是否按分组?