我想用mysql创建一个类似于结果的表,以便我可以使用数据在融合图表中绘制,以便我在y轴上有总计,在x轴上有client_types,因此像这样
n+1' '
' ' '
10 ' ' ' ' '
' ' ' ' ' '
0 ' ' ' ' ' ' '
'__'___'___'__'___'___'___
A B C D E All
我的查询如下所示返回
SELECT DISTINCT(COUNT('client_type')) AS Total, client_type FROM `clients` GROUP BY client_type
返回
Total Client_type
18 A
26 B
16 C
101 D
2 E
所以我想要的是能够在客户类型下添加'所有'和总和(总计)
Total Client_type
18 A
26 B
16 C
101 D
2 E
168 All
建议
答案 0 :(得分:2)
您想要rollup
:
SELECT COUNT(*) AS Total, coalesce(client_type, 'All')
FROM `clients`
GROUP BY client_type with Rollup;
注意:表达式DISTINCT(COUNT('client_type'))
接近于非感性。您基本上不需要select distinct
group by
。 distinct
适用于select
中的所有值,因此count('client_type')
周围的问题不会发生任何事情。并且,当你想要列时,你正在计算一个常量,字符串'client_type'
。