如果SELECT SUM(amount) FROM transactions ORDER BY order LIMIT 0, 50
總和爲amount
字段爲前50個記錄中的一個表,怎麼總算之後所有記錄總和爲第50個?換句話說,我想要做一些類似於SELECT SUM(amount) from transactions ORDER BY order LIMIT 50, *
的工作,但這不起作用。如何從表中的偏移量結束SUM()?
回答
的documentation建議使用一個令人難以置信的大量的第二個參數爲LIMIT
:
從某個檢索所有行偏移到結果集的末尾,你可以使用的一些大量第二個參數。此語句檢索從第96行中的所有行到最後:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
SELECT SUM(amount)
FROM (
SELECT amount
FROM transactions
ORDER BY
order
LIMIT 50, 1000000000000
) q
請注意,您的原始查詢:
SELECT SUM(amount)
FROM transactions
ORDER BY
order
LIMIT 0, 50
沒有做什麼,你可能認爲它。這是同義的:
SELECT a_sum, order
FROM (
SELECT SUM(amount) AS a_sum, order
FROM transactions
) q
ORDER BY
order
LIMIT 0, 50
內部查詢(這通常無法在任何其他的引擎,但在MySQL
由於其GROUP BY
擴展語法工程)只返回1
記錄。
ORDER BY
和LIMIT
然後應用於該一個彙總記錄而不是transactions
的記錄。
如果你有超過10000000000行? – Pyrolistical 2010-04-12 17:05:12
子查詢的任何原因?似乎多餘。 – keithjgrant 2010-04-12 17:40:44
@Pyrolistical:那麼你考慮切換到另一個引擎。 – Quassnoi 2010-04-12 17:55:20
有可能是一個更有效的方式,但你可以先運行一個計數查詢,檢索行的總#在你的餐桌:
SELECT count(*) FROM transactions
將這些變成變量並將該變量用作LIMIT的第二個參數。你可以做一個嵌套的mysql查詢。
- 1. Istream seekg()偏移量和ios ::結束
- 2. 從全局偏移量表中查找負載偏移量
- 3. 從偏移量中選擇一部分數據從偏移量到偏移量
- 4. 如何計算結構的偏移量
- 5. 從給定'x'(起始)偏移量複製文件到給定'y'(結束)偏移量的工具
- 6. 如何應用結構偏移量?
- 7. 如何顯示WP中的偏移量?
- 8. 全局偏移表結構
- 9. Lucene結果數量和偏移量
- 10. LoadLibrary從文件中的偏移量
- 11. 如何通過Javascript在句子中獲得選定的字符串偏移量開始和偏移量結尾
- 12. 表中未定義的偏移量PHP
- 13. 按偏移量訪問表(?)
- 14. 帶偏移量的結構指針
- 15. 如果已知偏移量,如何獲得結構的成員?
- 16. 如何在jquery中取消偏移量
- 17. 如何在logstash中獲得偏移量?
- 18. 如何從iframe中獲取當前的iframe偏移量?
- 19. 如何從NodaTime的偏移量中獲取所有IANA時區?
- 20. 如何從XAML LinearGradientBrush的偏移量中讀取顏色?
- 21. mysql中的負偏移量?
- 22. WordPress:get_categories中的「假」偏移量?
- 23. WP7中的ListBox偏移量
- 24. Transbase中的偏移量
- 25. Vlookup中的VBA偏移量?
- 26. 如何確定xamarin表格中的當前滾動偏移量
- 27. 如何向圖表中的數據集添加偏移量js
- 28. 如何找到內核結構元素的偏移量?
- 29. 從matplotlib中刪除偏移量
- 30. UINavigationController偏移量
接受這一個,因爲它最直接地解決我的問題,但是感謝(和+1)@Quassnoi指出我的問題與'ORDER BY'一起 – keithjgrant 2010-04-12 20:34:55
這個答案的格式將返回零結果如果SUM或一些其他聚合功能被使用。這是因爲,正如@Quassnoi在下面解釋的那樣,SUM將應用於僅返回一個結果的子查詢的記錄#95 - LARGE_NUMBER。 Quassnoi給出了以下原始問題的正確答案。 – akgill 2014-04-28 21:00:27