7

私はと呼ばれる測定値を持つテーブルを持っていますmeasure 。テーブルには、場所用の 1 つの列と、対応する用の 2 番目の列があります(例は簡略化されています)。

テーブルは次のようになります ( loc1の 2 つのエントリに注意してください)。

location | value
-----------------
loc1     | value1
loc1     | value2
loc2     | value3
loc3     | value4
loc4     | value5

この場所にはこのテーブルに複数のエントリがあるため、テーブルの最初の 2 行 (つまり、loc+value1 と loc1+value2) のみを返す SQL クエリ (実際には sqlite を使用) を作成したいと考えています。

疑似テキストの定式化は次のようになります: テーブルの
疑似コード全体に複数回存在する場所の行を表示:

SELECT * from measures WHERE COUNT(location over the whole table) > 1

解決策は本当に簡単かもしれませんが、どういうわけか私はナットを割っていないようです.

これまでのところ、複数のエントリを持つ場所を返す SELECT ステートメントがあります。次のステップとして、このクエリから返された場所に対応するすべての行が必要になります。

SELECT location FROM measures GROUP BY location HAVING count(*) > 1

次のステップとして、同じテーブルで JOIN を実行し、上記のクエリを組み込んでみましたが、結果は正しくありません。私はこのように試しましたが、これは間違っています:

select t1.location, t1.value
from 
     measures as t1
     join 
     measures as t2 on t1.location = t2.location 
group by
      t2.location 
having count(*) > 1

助けていただければ幸いです!

4

4 に答える 4

1
SELECT * FROM measures WHERE
(location) IN (
    SELECT
        location
    FROM
        measures
    GROUP BY
        location
    HAVING
        COUNT(location) > 1
) ORDER BY ASC
于 2013-08-07T16:09:38.263 に答える