2015-06-20 25 views
1

bid_count正在返回1 ...我如何才能返回正確的出價計數?我知道它沒有返回正確的計數,因爲我正在分組user_id。我可以改變查詢的方式嗎?在相同的查詢中計數並分組

"SELECT id, bid, item_id, user_id, MAX(bid) AS max_bid, COUNT(bid) AS bid_count, bid_date 
    FROM bids 
    WHERE item_id = ? 
    GROUP BY user_id ORDER BY id DESC" 

回答

0

除非它們在組內全部相同,否則不應在GROUP BY中使用未聚合的表達式。

如果你想返回由USER_ID持有數記錄,你應該使用一個子查詢,以獲得計數,然後將其加入結果:

SELECT id, bid, item_id, user_id, bid_date, max_bid, bid_count 
    FROM bids 
LEFT JOIN 
    (SELECT user_id,MAX(bid) AS max_bid, COUNT(bid) AS bid_count 
    FROM bids 
    WHERE item_id = ? 
    GROUP BY user_id) as group_table 
ON bids.user_id = group_table.user_id 
WHERE bids.item_id = ? 
+0

好吧...我想我剛準備給放棄這個查詢。我想用javascript每隔幾秒就運行一次。如果它有一個子查詢,我不希望它:)謝謝! – Ciprian

0

嘗試根據item_id對其進行分組。 item_id應該是具有不同出價的那個。