簡體   English   中英

BETWEEN和AND中的聚合函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM