これにより、ごとに1つのレコードのみが返されID
ます。以下のクエリは、 idフィールドMIN()
を使用して都市と州の両方の値を返します。GROUP BY
複数あり、1ID
つの値のみを返したいので、これは要件を満たす最初のレコードのみを返します。
select ID, min(city) city, min(state) state
from yourTable
group by ID
SQL FiddlewithDemoを参照してください
したがって、これは次のように機能します
YourTable
ID city state
1 efef dfdd
2 dwef sdfsd
1 fdds fsdfs
MIN()
都市と州の列とIDの値を取得すると、次のGROUP BY
ようになります。
YourTable
ID city state
1 efef dfdd
2 dwef sdfsd
MIN()
シーケンスの最下位を返します。したがって、city
with ID
of1
はで始まり、その前e
にあるため、選択されます。は、一致するすべてのものを1つのクラスターに結合します。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