我有一个表,
(请注意,这个问题可能听起来像重复,但我在发布这个之前检查了其他问题…如果你在其他帖子中找到答案,建议我而不是投票。以防万一,我保证把它删掉。thx)
|tid |name|age|sex|pack_id
1 |Joe |57 |M |77
2 |Joe |57 |M |77
3 |Joe |57 |M |89
4 |Joe |57 |M |89
5 |Joe |57 |M |94
6 |Roy |98 |M |7
7 |Roy |98 |M |8
8 |Roy |98 |M |9
9 |Roy |98 |M |7
10 |Roy |98 |M |7
11 |Roy |98 |M |7
12 |Joe |46 |M |96
13 |Guh |97 |F |1
14 |Kin |68 |F |33
15 |Kin |68 |F |37
16 |Kin |68 |F |37
17 |Kin |68 |F |37
18 |Kin |68 |F |35
19 |Kin |68 |F |37
20 |Pit |43 |F |77
21 |Pit |43 |F |1
22 |Pit |43 |F |2
23 |Pit |43 |F |1
24 |Pit |43 |F |77
25 |Joe |71 |M |75
26 |Bob |82 |M |77
27 |Guh |97 |F |20
28 |Guh |97 |F |28
29 |Guh |97 |F |28
30 |Guh |97 |F |23
我的目标是有一个查询,将产生不重复的pack_id
比如:
|tid |name|age|sex|pack_id
1 |Joe |57 |M |77
3 |Joe |57 |M |89
5 |Joe |57 |M |94
6 |Roy |98 |M |7
7 |Roy |98 |M |8
8 |Roy |98 |M |9
12 |Joe |46 |M |96
13 |Guh |97 |F |1
14 |Kin |68 |F |33
18 |Kin |68 |F |35
19 |Kin |68 |F |37
20 |Pit |43 |F |77
21 |Pit |43 |F |1
22 |Pit |43 |F |2
25 |Joe |71 |M |75
26 |Bob |82 |M |77
27 |Guh |97 |F |20
28 |Guh |97 |F |28
30 |Guh |97 |F |23
I have try:
SELECT `tid` ,`name`,`age`,`sex`,`pack_id` FROM `myTable` group by `pack_id` //FAILED
试过了:
SELECT DISTINCT(`pack_id`) ,`name`,`age`,`sex`,`pack_id` FROM `myTable` group by `pack_id`// RETURNS ONE SINGLE 'name' MANY TIMES
尝试
MySQL select distinct where in all尝试
如何获得所有具有多个不同地址id的唯一id
try many more…
还是不行
听起来您需要在两个级别上GROUP BY
: name
和pack_id
。例如:
SELECT tid,name,age,sex,pack_id FROM yourtable GROUP BY name, pack_id;
详细信息请参见参考手册
SELECT min(tid), name,age,sex,pack_id
FROM myTable
group by name, age, sex, pack_id