2013-02-21 53 views
-1

我只需要一個使查詢工作的幫助。關於MYSQL查詢問題拋出無效的使用組函數錯誤

我想獲得

SELECT SUM(TIME_TO_SEC(cdr.duration)) AS secsUsed 
FROM cdr 
WHERE SUM(TIME_TO_SEC(cdr.duration))>=2400 
GROUP BY ownerpin 
ORDER BY secsUsed DESC 

我發現,像上述聚合函數的使用將無法正常工作的所有其總CDR秒> = 2400(40分鐘)的用戶記錄!

有什麼辦法可以讓我的邏輯工作!

+1

你收到了什麼錯誤?必須選擇GROUP BY中的列。 – Kai 2013-02-21 08:17:34

+0

接收錯誤1111:無效的組功能使用,我只想要cdr秒 – 2013-02-21 08:17:58

+0

標題可能看起來像simillar,但查詢問題是不同的,我檢查與其他相同的標題問題,因爲我無法找到任何解決方案,我已發佈 – 2013-02-21 08:24:05

回答

1

移動狀態從WHEREHAVING條款:

select ownerpin, 
     SUM(TIME_TO_SEC(cdr.duration)) as secsUsed 
from cdr 
group by ownerpin 
HAVING SUM(TIME_TO_SEC(cdr.duration))>=2400 
order by secsUsed desc ; 
+0

謝謝,此查詢工作!我還有另一個問題, 檢查以下查詢 select select SUM(TIME_TO_SEC(cdr.duration))as secsUsed,cdr.ownerpin,user.userid,DATEDIFF(now(),user.dateadded)作爲daydiff從cdr內部連接(now(),dateadded)> cdr.ownerpin = user.ownerpin其中user(user_is_active = true,user.plan_type類似'%trial%')選擇ownerpin,userid,dateadded,is_active,plan_type = 14或SUM(TIME_TO_SEC(cdr.duration))> = 2400組cdr.ownerpin order by secsUsed desc; – 2013-02-21 08:19:56

+0

現在我想執行兩個條件,即或者是用戶已經過去了14天或他/她的CDR分鐘超過40分鐘時 u能幫助錯誤1111:無效使用組功能的 這也扔 – 2013-02-21 08:21:50

+0

對不起,不格式化第二個查詢!任何幫助! – 2013-02-21 08:25:24

相關問題