SELECT DISTINCT field1, field2, field3, ...... FROM table
我试图完成下面的sql语句,但我希望它返回所有列,这是可能的吗?比如:
SELECT DISTINCT field1, * from table
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,那么第一个可以在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
在其他数据库(MySQL、SQLite)上,您需要编写子查询,使您能够用自身(example)连接整个表,因此不推荐这样做.