我有一张这样的表:
Physician_key Product Month Score
1 a 8 1
1 a 8 2
1 a 8 3
2 b 8 2
2 b 8 1
我正在尝试仅检索得分<= 2的密钥的数量,并且我不想计算密钥,即使它出现具有单个时间分数&gt; 2。所以在输出中我想要这样的东西: 对于第8个月的产品b,计数= 2。
我正在尝试使用Null约束对记录&lt; = 2和&gt; 2的键进行自联接。但它仍然返回我前2行,我不想要。
答案 0 :(得分:0)
NOT EXISTS
条款可能有所帮助:
SELECT * FROM table t
WHERE NOT EXISTS (
SELECT 1
FROM table tx
WHERE tx.Physician_key = t.Physician_key
AND tx.Product = t.Product
AND Score > 2
);
这基本上是说“给我表中的所有行,但排除任何行,这个医生和产品的行有一个分数> 2”