[英]Aggregate function in BETWEEN and AND
我在查詢中加入了3個表。 在我的庫存數據庫中,價格來自表c,數量來自表b。 如何顯示在列的給定值和最大值之間進行排序的用戶的記錄列表。 我在mysql中使用下面的查詢來檢索記錄。 正如所料,它顯示錯誤。 任何幫助將受到高度贊賞
SELECT .... GROUP BY userid HAVING SUM(c.`price` * b.`quantity`) BETWEEN 9000 AND MAX(SUM(c.`price` * b.`quantity`))
如果我理解正確,你不需要BETWEEN
。 試試這種方式
SELECT ....
GROUP BY userid
HAVING SUM(c.`price` * b.`quantity`) >= 9000
萬一你想知道你不能鏈接聚合函數。 即使你可能它沒有意義,因為你按用戶ID分組,但試圖從所有用戶獲得SUM的MAX。 為了使其工作,您應該使用子查詢來獲得最大值,例如
SELECT ....
GROUP BY userid
HAVING SUM(c.`price` * b.`quantity`) =
(
SELECT MAX(total) total
FROM
(
SELECT SUM(c.`price` * b.`quantity`) total
GROUP BY userid
) q
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.