SQL中查询多个字段时,GROUP BY 要怎么使用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中查询多个字段时,GROUP BY 要怎么使用?相关的知识,希望对你有一定的参考价值。

group
by是要用在sum(),max(),min()等聚合函数的后面
不能单独使用,如果要排序的话
根据order
by
排序就行了,这个排序在一定意义上也可以理解为分组
参考技术A 你这个意思是要分组么,直接用索引不就行了么~~到货地点
正序或倒序
,用order
by也行,如果要一个组内再分组,那就用多个索引就行了~~

SQL GROUP BY对多个字段进行分组

https://www.cnblogs.com/87060524test/p/10402784.html

 

在group中,group by 后面的字段,在select 后面是一定要有的

 group by就是分组,把谁和谁分在一起,然后,在表里去找这个组合中满足的记录

 select ACC_B2B..ORDER_Head.OrderSn
    from ACC_B2B..ORDER_Head
    group by ACC_B2B..ORDER_Head.OrderSn,
             ACC_B2B..ORDER_Head.CreateTime order by CreateTime desc

 

ACTION_TYPE,STATUS_CODE

在select聚合函数里,就可以不用在group里
select COUNT(*) ,ACTION_TYPE,STATUS_CODE,count(STATUS_MESSAGE) as STATUS_MESSAGE  from ACC_MINIEHUB..hubV2_SOConfirmLog group by  ACTION_TYPE ,STATUS_CODE

GROUP BY X意思是将所有具有相同X字段值的记录放到一个分组里,
GROUP BY X, Y意思是将所有具有相同X字段值和Y字段值的记录放到一个分组里。

HAVING
当然提到GROUP BY 我们就不得不提到HAVING,HAVING相当于条件筛选,但它与WHERE筛选不同,HAVING是对于GROUP BY对象进行筛选。
以下是引用片段:
SELECT dep.department_name, MAX(emp.salary), MIN(emp.salary)  
FROM departments dep  
LEFT JOIN employees emp  
ON (dep.department_id = emp.department_id)  
GROUP BY dep.department_name  
--order by 的列,必须是出现在group by 子句里的列   
ORDER BY dep.department_name DESC

 这样可以看出,四个状态下的SoNumber是多少数量

select Status,COUNT(Number) from SOStatus   group by SOStatus --having      Status=\'3\'

 

 

以上是关于SQL中查询多个字段时,GROUP BY 要怎么使用?的主要内容,如果未能解决你的问题,请参考以下文章

sql语句中的group by要怎么用!!

若sql语句中order by指定了多个字段,则怎么排序?

若sql语句中order by指定了多个字段,则怎么排序?

sql中 group by排序

使用以相同字段开头的 GROUP BY 优化多个查询

若sql语句中order by指定了多个字段,则怎么排序?