这应该只返回一个记录ID
。下面的查询将使用id 字段返回MIN()
城市和州的值。GROUP BY
由于您有多个ID
并且只想返回一个值,那么这只会返回满足要求的第一条记录。
select ID, min(city) city, min(state) state
from yourTable
group by ID
请参阅带有演示的 SQL Fiddle
所以这可以通过以下方式工作
YourTable
ID city state
1 efef dfdd
2 dwef sdfsd
1 fdds fsdfs
如果我们取MIN()
city 和 state 列的值以及GROUP BY
id 你的结果将是:
YourTable
ID city state
1 efef dfdd
2 dwef sdfsd
MIN()
将返回序列中的最低值。因此,由于city
with the ID
of以 and1
开头e
并且e
在此之前f
,它将被选中。GROUP BY
将所有匹配的内容组合ID
成一个集群。
然后,如果您想排除任何具有重复 id 的记录,那么您可以将查询更改为:
select ID, min(city) city, min(state) state
from yourTable
group by ID
having min(city) = max(city)
and min(state) = max(state)
编辑:
您还可以使用:
select min(rowid) rowid, ID, city, state
from yourTable
group by ID
或者:
select *
from yourTable t1
inner join
(
select min(rowid) row_id, ID
from yourTable
group by ID
) t2
on t1.rowid = t2.row_id
and t1.id = t2.id