假设我们有下表meals
:
| 餐| 明星 | ----------------- | 牛排| 1 | | 牛排| 2 | | 鱼| 高分辨率照片| CLIPARTO 4 | | 鱼| 高分辨率照片| CLIPARTO 4 | | 沙拉| 高分辨率照片| CLIPARTO 5 |
同一餐,不同星级如何获得记录?我需要只有不同星星的记录。
上表的结果应如下所示:
| 餐| 明星 | ----------------- | 牛排| 1 | | 牛排| 2 |
我尝试了以下查询:
SELECT DISTINCT t1.*
FROM meals t1
INNER JOIN meals t2 ON t1.meal = t2.meal
AND t1.stars <> t2.stars;
但它消耗了太多时间和一些显着的内存量。
我的桌子的实际大小是:
选择 pg_size_pretty(pg_relation_size('table_name')); pg_size_pretty ---------------- 2295 MB
所以我需要想出一些别的东西,我正在寻求你的帮助!