SELECT DISTINCT field1, field2, field3, ...... FROM table
我正在尝试完成以下 sql 语句,但我希望它返回所有列这可能吗?就像是:
SELECT DISTINCT field1, * from table
您正在寻找一个组:
select * from table group by field1
有时可以用不同的 on 语句编写:
select distinct on field1 * from table
然而,在大多数平台上,以上都不起作用,因为其他列上的行为是未指定的。(第一个在 MySQL 中有效,如果你正在使用的话。)
您可以获取不同的字段并坚持每次都选择一个任意行。
在某些平台(例如 PostgreSQL、Oracle、T-SQL)上,这可以直接使用窗口函数来完成:
select * from ( select *, row_number() over (partition by field1 order by field2) as row_number from table ) as rows where row_number = 1