我正在尝试为SQL做可能很标准的事情,但我不知道如何谷歌或搜索它,因为我只能解释我想实现的目标。在SQL中创建已修改的GROUP选择
,如果我有一个表:
Table X:
ID | PID | TID
1 | 1 | 2
2 | 1 | 3
3 | 2 | 3
4 | 3 | 4
5 | 4 | 1
6 | 2 | 2
我想组由PID
(让每个PID
来自全国各地的表只有一次),但肯定让它们在指定TID
值(因为正常组将随机选择它们)。所以我想我的查询结果是,如果TID
被指定为'2'
:
Result:
ID | PID | TID
1 | 1 | 2
4 | 3 | 4 -- 4 because from all over the table and it does not have TID = 2 where PID = 3
5 | 4 | 1 -- 5 because the same as above
6 | 2 | 2 -- This is where the normal GROUP would mess up as it would give ID = 3 instead of ID = 6
价值观与ID
小号2
和3
被跳过,因为他们有PID
也与TID = 2
一起谢谢您!
'SELECT pid,tid FROM tableX WHERE tid = 2 GROUP BY pid UNION SELECT pid,max(tid)FROM tableX WHERE tid!= 2 GROUP BY pid .... ....尝试以上查询的一些变体.... –