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 子句中的项就必须出现在选择列表中。
还是不行啊!

意思就是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
看哪个是你要的

  1. SQL 分组关键字 group by 

  2. 排序关键字order by

  3. 假如定义一个表,如name,count 字段

  4. 其中name 为字符串类型,count 为int 类型

  5. SQL 如下:

  6. select name,sum(count) from table

  7. group by name

  8. order by name asc

  9. 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 )