0

私のテーブルには 3 つのフィールドがあります。内部で最も繰り返される ticket_id を取得したいのですが、このクエリは機能しますが、「is_winner」に 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
4

2 に答える 2

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

(すべての勝者が必要だと気づいたので編集しました)

于 2013-10-02T10:46:52.630 に答える
1
SELECT ticket_id, COUNT() AS wins
FROM ticket_log
WHERE is_winner=1
GROUP BY ticket_id
ORDER BY wins DESC;

これは?

于 2013-10-02T10:42:03.233 に答える