このクエリは、私が期待するものを返しません。なんで?
テーブル:
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では、順序付けられた列が選択リストにない限り、1つのクエリでDISTINCTとORDER BYの両方を許可しません)?