分组查询
用途:汇总统计多条结果(简单查询无法做到),常和聚合函数一起使用
格式:slect 要显示的结果字段 from tb_name [where 条件] group by 分组字段 [ordey by 字段 asc[|desc]];
参数:
1)要显示的结果字段:
id,user,count(id),sum(id),avg(id),min(id),max(id),group_concat(分组字段),…
说明:
group_concat(分组字段):将分组字段中的每个值都显示出来
显示的结果类型类似'm1901,m1901,m1901,m1901'
2)分组字段:字段1,字段2,…;先按字段1分组,当字段1的值相等时在按字段2分组
实例:
SELECT 行业, avg(open) FROM tb_name group by 行业;#分组列一般按大类类别进行
SELECT 行业,分类,name,count(open),sum(open),avg(open),min(open),max(open) FROM tb_name group by 分类;
select 行业,分类,name,count(open),avg(open) from tb_name
where open is not null group by name order by avg(open) desc;
select 行业,分类,name,vol from tb_name group by name,vol,行业; #多个字段分组
select 行业,分类,name,vol,group_concat(name) from tb_name group by name;#name必为分组字段
No 行业 类 name open vol
'1', '农产品', '豆粕', 'm1901', '11.2', '100'
'2', '农产品', '豆粕', 'm1901', '12.5', '105'
'3', '农产品', '豆粕', 'm1901', '13', '200'
'4', '农产品', '豆粕', 'm1905', '12.5', '300'
'5', '农产品', '豆粕', 'm1905', '14.3', '400'
'6', '农产品', '豆粕', 'm1909', '14.5', '500'
'7', '农产品', '玉米', 'c1909', '20.2', '300'
'8', '农产品', '玉米', 'c1912', '21.3', '200'
'9', '工业品', 'pb', 'pb1901', '30.2', '500'
'10', '工业品', 'pb', 'pb1901', '32.1', '700'
'11', '工业品', 'Sn', 'Sn1905', '40.5', '900'
'12', '工业品', 'Sn', 'Sn1905', '42.3', '200'
'13', '工业品', 'Au', 'Au1905', '50.2', '200'
'14', '工业品', 'Au', 'm1901', '50.2', '200'
int char char char float int
8.mysql 分组查询(tcy)
猜你喜欢
转载自blog.csdn.net/tcy23456/article/details/86795775
今日推荐
周排行