我有一张这样的表
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 )
但是我不确定如何添加目标相似度。
答案 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