sql group后按分组数量的多少排序怎么写

发布时间 2023-05-25 20:45:22作者: dreamw

@@sql 按 GROUP BY 后 数量 大小 排序

 

sql group后按分组数量的多少排序怎么写

[Access2010中如何运行SQL执行SQL语句]1、打开ACCESS数据库,找到右边的空数据,单击弹出对话框,让你选择数据库保存的路径和名称,大家根据自己的实际情况保存吧,我这里使用默认的。 2、创建数据库完成后,会生成一个小窗...+阅读

目录1、sql group后按分组数量的多少排序怎么写2、sql里group的用法3、sql分组排序

1、sql group后按分组数量的多少排序怎么写

数据表内有一个种类字段,把商品分成了N种,我想使用sql语句列出有多少种类,也就是group by 种类 ,但是我想输出时是按种类的多少进行排序,也就是历史类有100个产品 自然类有200个产品 法律类有300个产品

那么就输出

法律 300

自然 200

历史 100

select 种类,sum(数量) from 表名 group by 种类 order by sum(数量) desc

试试:

$sql="SELECT products_id,COUNT(products_id) FROM orders_products GROUP BY products_id ORDER BY COUNT(products_id) DESC";

?>

2、sql里group的用法

在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。

在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数

select max(sal),job emp group by job;

(注意max(sal),job的job并非一定要出现,但有意义)

查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,在where 子句中不能使用聚组函数。

select deptno,sum(sal) from emp where sal>1200 group by deptno having sum(sal)>8500 order by deptno;

当在gropu by 子句中使用having 子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和having子句。having 与where 子句类似,均用于设置限定条件

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

查询每个部门的每种职位的雇员数

select deptno,job,count(*) from emp group by deptno,job;

3、sql分组排序

你要求的这个查询根本没有严格的顺序问题,所以我觉得只能分步查询:1.先建一个临时表temp create table temp (id identity(1,1), check_id char(2), idate datetime ) go/*temp表跟你的这个表定义一样*/2:先查check_id=2 or check_id=4的记录 select * into temp from 你的表名 where check_id=2 or check_id=4 group by check_id desc,idate desc go3.再查剩下的记录 select * into temp from 你的表名 into temp where check_id!=2 and check_id!=4 group by check_id desc,idate_id desc go4.最后查询temp表,即得你要的数据了: select * from temp go

本文地址:http://www.docexcel.net/show/22_249849.html