多个重复发现

时间:2011-11-30 01:12:55

标签: mysql

我有一张这样的表

ticket_id   destination
---------   -----------
5           Paris
5           Paris
5           California
5           Paris
6           Nebraska
15          London
6           Nebraska
6           Nebraska

我想选择表格中的所有票证ID超过2次并且到达同一目的地。

所以,在这种情况下,我会得到一个像这样的表:

ticket_id   destination num_times
---------   ----------- ---------
5           Paris       3
6           Nebraska    3

我知道如何获得所有重复某些时间的门票:

SELECT ticket_id, destination,
COUNT(ticket_id) AS num_times
FROM table
GROUP BY ticket_id
HAVING ( COUNT(*) > 2 )

但是我不确定如何添加目标相似度。

2 个答案:

答案 0 :(得分:4)

只需按票证ID和目的地分组:

SELECT ticket_id, destination,
 COUNT(ticket_id) AS num_times
FROM table
GROUP BY ticket_id, destination
HAVING ( COUNT(*) > 2 )

答案 1 :(得分:1)

顺便提一下,您的查询不需要那么大。这是一个有用的简短版本:

SELECT ticket_id, destination, COUNT(*) AS num_times
FROM table
GROUP BY 1, 2
HAVING COUNT(*) > 2

Mantra:LESS == GOOD