という名前の次のテーブルがあるとしますmeals
。
| | 食事 | 星 | ----------------- | | ステーキ | 1 | | | ステーキ | 2 | | | 魚 | 4 | | | 魚 | 4 | | | サラダ | 5 |
同じ食事で星が異なるレコードを取得するにはどうすればよいですか? 星だけが違うレコードが欲しい。
上記の表の結果は次のようになります。
| | 食事 | 星 | ----------------- | | ステーキ | 1 | | | ステーキ | 2 |
次のクエリを試しました。
SELECT DISTINCT t1.*
FROM meals t1
INNER JOIN meals t2 ON t1.meal = t2.meal
AND t1.stars <> t2.stars;
しかし、あまりにも多くの時間を消費し、かなりの量のメモリを消費します。
私のテーブルの実際のサイズは次のとおりです。
SELECT pg_size_pretty(pg_relation_size('table_name')); pg_size_pretty ---------------- 2295メガバイト
だから私は何か他のことを考え出す必要があり、私はあなたの助けを求めています!