4

誰かがこの英語をSQLに変換できますか?私はいくつかのことを試しましたが、運がありません。

SELECT CASE WHEN COUNT(person_id)> 3 THEN person_id end FROM table

テーブルで3回以上発生するperson_idのみを取得しようとしています。

4

2 に答える 2

10

使用する:

  SELECT t.person_id
    FROM TABLE t
GROUP BY t.personid
  HAVING COUNT(t.personid) > 3

WHERE句では、集計関数、または集計関数を使用して派生列の列エイリアスを使用することはできません。これらはHAVING句でのみ使用できます。HAVING句では、GROUP BY句を定義する必要があります(まだ存在しない場合)。

GROUPBY句またはHAVING句で列エイリアスを使用することはお勧めしません。クエリが他のデータベースに移植できないリスクがあります。SQL ServerとMySQLは、GROUPBY句またはHAVING句で列エイリアスをサポートしていることを私が知っている唯一のデータベースです。

于 2010-06-29T17:55:15.507 に答える
3
SELECT
    person_id

FROM table

GROUP BY person_id

HAVING COUNT(*) > 3
于 2010-06-29T17:55:26.617 に答える