我有一個 bid_trans 表,其中包含價格、Car_Id、Bid_type、Account_id 等欄位
SELECT bt.price AS price, ((COUNT(IF(bt.status = 3, 1, NULL)) / COUNT(bt.id)) * 100) AS rate
FROM bid_trans bt
WHERE bt.car_id = '451a8ad6-d31d-4e89-84df-498afcb6da15' AND bt.bid_type = 1
GROUP BY bt.price
ORDER BY bt.price DESC
LIMIT 10;
這是一個基本的組查詢。我現在的問題是如何使用布爾欄位來檢查 account_id 是否存在于一組價格中?
Price | Rate | isJoined
10 5 0
20 10 1
就像上面的 isJoined 列,不同的 account_id 會顯示不同的結果
uj5u.com熱心網友回復:
如果我的問題正確,如果組中包含一個特定的 account_id,您希望 isJoined 為 1。
這可以通過使用 account_id = <insert_account_id> 的 SUM 并測驗其是否大于 0 來完成。
SELECT bt.price AS price,
((COUNT(IF(bt.status = 3, 1, NULL)) / COUNT(bt.id)) * 100) AS rate,
SUM(account_id = <insert_account_id>) > 0 AS isJoined
FROM bid_trans bt
WHERE bt.car_id = '451a8ad6-d31d-4e89-84df-498afcb6da15' AND bt.bid_type = 1
GROUP BY bt.price
ORDER BY bt.price DESC
LIMIT 10;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/443042.html
下一篇:MySql緩慢的請求時間
