sta*_*ker 5 mysql sql database
我有一个查询,它返回不止一次出现的不同device_type的行数.
SELECT COUNT(*) AS C1,device_type FROM stat
WHERE stat_date = '2012-02-08'
GROUP BY 2 HAVING C1 > 1
ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud)
我想将剩余的(HAVING count = 1)行总结为'others'
如何将COUNT(*)和'others'的总和添加为以下查询的第二列?
SELECT COUNT(*) AS C2,device_type FROM stat
WHERE stat_date = '2012-02-08'
GROUP BY 2 HAVING C2 = 1
ORDER BY 1 DESC
Run Code Online (Sandbox Code Playgroud)
DB中的示例数据
device_type
dt1
dt1
dt1
dt2
dt2
dt3
dt4
dt5
Run Code Online (Sandbox Code Playgroud)
预期结果
3 dt1
2 dt2
3 other
Run Code Online (Sandbox Code Playgroud)
您还可以尝试:
SELECT SUM(C1) AS C1, CASE WHEN C1 = 1 THEN 'other' ELSE device_type END as device_type
FROM ( SELECT COUNT(*) AS C1,
device_type
FROM stat
WHERE stat_date = '2012-02-08'
GROUP BY device_type) A
GROUP BY CASE WHEN C1 = 1 THEN 'other' ELSE device_type END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |