这个查询没有返回我所期望的。为什么?
桌子:
create table t
(
comment varchar(10),
id int
);
数据:
insert into t values ('C1', 1);
insert into t values ('C2', 2);
insert into t values ('C3', 3);
insert into t values ('C4', 4);
insert into t values ('C5', 5);
insert into t values ('C6', 6);
insert into t values ('C7', 7);
insert into t values ('C8', 8);
insert into t values ('C9', 9);
insert into t values ('C1', 10);
查询:
select distinct comment from t order by id desc limit 8;
结果:
C9
C8
C7
C6
C5
C4
C3
C2
当我离开 DISTINCT 时,我得到最后一行,但我想抑制重复。我的解决方法返回正确的结果集:
select comment from t group by comment order by max(id) desc limit 8;
但是我很好奇我的查询是否无效(例如,T-SQL 不允许在一个查询中同时使用 DISTINCT 和 ORDER BY,除非有序列在选择列表中)?