我擁有龐大的數據庫,而且我需要使用group by的所有類別的平均值排名前90%。例如,我有300個位置,數據大約100k,TAT列針對所有碼頭,我需要使用group by(location)在一個查詢中取最小90%的平均TAT所有位置。SQL中針對組的最高90%平均數(ASC)
0
A
回答
2
大多數的DBMS支持窗口化聚合Fuctions,你需要PERCENT_RANK:
select location, avg(TAT)
from
(
select location, TAT,
-- assign a value between 0 (lowest TAT) and 1 (highest TAT) for each location
percent_rank() over (partition by location order by TAT) as pr
from tab
) as dt
where pr <= 0.9 -- exclude the highest TAT amounts
group by location
+0
非常感謝dnoeth先生,你解決了這個問題。 我用領帶90%PERCENT,cume_dist但都是徒勞,再次感謝老闆。如果你告訴我percent_rank的邏輯, 會更加欣賞。 –
+0
@ VishanSingh:PERCENT_RANK是具有小於**當前值的行的百分比,而CUME_DIST使用**小於或等於**。請參閱http://developer.teradata.com/blog/dnoeth/2011/05/missing-functions-cume-dist-ntile – dnoeth
相關問題
- 1. 組中N個最高/最低元素的平均數
- 2. SQL的分組平均數
- 3. Java - 最高,最低和平均水平
- 4. 最大的平均值 - SQL
- 5. 從數組中找出最高,最低和平均5個數字的程序
- 6. 最高和最低的平均C++
- 7. 打印數組的平均值和最高值
- 8. 查找在SQL中使用連接的最高平均工資?
- 9. 數組值的平均最大子集
- 10. 爪哇 - 最高,最低和平均
- 11. 最大平均GPA SQL
- 12. 最小高度90%?
- 13. C++中數組的最大值,最小值,平均值函數
- 14. Excel - 計算最低值的90%的平均值
- 15. MySQL的 - 選擇具有最高平均
- 16. 尋找學生的最高平均分
- 17. 錄製個人平均和累計平均分和最高平均分
- 18. SQL計數平均
- 19. SQL平均分組按
- 20. SQL查找最高平均得分的工人姓名
- 21. SQL:確定平均「最低」或「最低」
- 22. 組數的平均數?
- 23. 數組 - 平均值
- 24. 計算總和,平均和DB 90%/ 2
- 25. 獲取數組中最後一個組的平均值
- 26. 針對平均用戶評分的SQL查詢導航3
- 27. 最大平均值,最小平均值和平均值
- 28. 以最大高度平均間距LinearLayouts
- 29. 確定'數據'的最高連續數cond =真的平均值
- 30. 如何在一組類平均值中顯示最大和最小平均值
您正在使用的數據庫。同時顯示一些示例數據和預期的輸出 –
sql server 2014,通過percent_rank工作。謝謝 –