sql 如何分组排序同时进行
来源:百度知道 编辑:UC知道 时间:2024/07/04 06:10:23
我刚才运行一句
select distinct top 5 a.itemname from qusmain a inner join qusremark b on a.id=b.parentid where b.userid=3 order by id desc
报如下错误:消息 145,级别 15,状态 1,第 1 行
如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。
还是不行啊!
select distinct top 5 a.itemname from qusmain a inner join qusremark b on a.id=b.parentid where b.userid=3 order by id desc
报如下错误:消息 145,级别 15,状态 1,第 1 行
如果指定了 SELECT DISTINCT,那么 ORDER BY 子句中的项就必须出现在选择列表中。
还是不行啊!
意思就是DISTINCT后面你要选的在ORDER BY中也必须出现
可以这样
select top 5 distinct t.itemname
from
(select top 5 a.itemname, a.id
from qusmain a inner join qusremark b on a.id=b.parentid
where b.userid=3 order by a.id desc ) t
或这样
select distinct top 5 a.itemname ,a.id
from qusmain a inner join qusremark b on a.id=b.parentid
where b.userid=3 order by id desc
看哪个是你要的
SQL 分组关键字 group by
排序关键字order by
假如定义一个表,如name,count 字段
其中name 为字符串类型,count 为int 类型
SQL 如下:
select name,sum(count) from table
group by name
order by name asc
order by 可以按降序或升序,asc 代表升序,desc 代表降序
select distinct from (select top 5 a.itemname from qusmain a inner join qusremark b on a.id=b.parentid where b.userid=3 order by id desc )