2013-10-02 66 views
0

我的表有3个字段,我想获得最重复的ticket_id我有里面,这个查询工作,但我需要添加一个where子句的“is_winner”,任何帮助?感谢Sqlite查询最大和where子句

ID TICKET_ID IS_WINNER 
1 2   1 
2 3   1 
3 2   1 
4 3   0 
5 2   1 
6 2   0 
7 3   0 
8 2   1 
9 2   0 


select query1.* FROM (Select ticket_id, Count(*) As order_count 
FROM ticket_log 
GROUP BY ticket_log.ticket_id) query1,(Select Max(query2.order_count) As highest_count 
FROM (Select ticket_id, Count(*) As order_count 
FROM ticket_log 
GROUP BY ticket_log.ticket_id) query2) query3 where query1.order_count = query3.highest_count 
+0

你怎么装?赢家一排?获取优胜者门票的列表? –

回答

1

只需添加WHERE子句:

SELECT query1.* FROM (Select ticket_id, Count(*) As order_count 
FROM ticket_log WHERE is_winner = 1 
GROUP BY ticket_log.ticket_id) query1,(Select Max(query2.order_count) As highest_count 
FROM (Select ticket_id, Count(*) As order_count 
FROM ticket_log WHERE is_winner = 1 
GROUP BY ticket_log.ticket_id) query2) query3 where query1.order_count = query3.highest_count 

(编辑,因为我注意到你需要所有名)

+0

以前试过你的解决方案,但我错过了第二个where子句。它的工作原理非常感谢。 – im7xs

1
SELECT ticket_id, COUNT() AS wins 
FROM ticket_log 
WHERE is_winner=1 
GROUP BY ticket_id 
ORDER BY wins DESC; 

是这样吗?