MYSQL練習題:給定數字的頻率查詢中位數(Leetcode困難)
題目描述
Numbers 表儲存數字的值及其頻率。
+----------+-------------+
| Number | Frequency |
+----------+-------------|
| 0 | 7 |
| 1 | 1 |
| 2 | 3 |
| 3 | 1 |
+----------+-------------+
在此表中,數字為 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 3,所以中位數是 (0 + 0) / 2 = 0。
+--------+
| median |
+--------|
| 0.0000 |
+--------+
請編寫一個查詢來查詢所有數字的中位數並將結果命名為 median 。
解題思路:
使用sum over(order by ) 對數字個數進行正序和逆序累計,
將從後往前和從前往後的頻數相加,兩個數都需要大於等於總數一半,再取平均。
select avg(number) median
from
(select number,
sum(frequency) over(order by number) asc_accumu,
sum(frequency) over(order by number desc) desc_accumu
from numbers) t1,
(select sum(frequency) total from numbers) t2
where asc_accumu >= total/2 and desc_accumu >=total/2
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/find-median-given-frequency-of-numbers
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
相關文章
- Java中查詢給定數字下最大素數的2種方法Java
- 給定數字生成中文數字(MySQL)MySql
- MYSQL資料庫複雜查詢練習題(難度適中)MySql資料庫
- 查mysql欄位中的數字記錄MySql
- 如何查詢總和等於給定數字的整數陣列中的所有對陣列
- MySQL查詢某個欄位含有字母數字的值MySql
- MySQL如何查詢某個欄位含有字母數字的值MySql
- Mysql查詢練習MySql
- 每日一練(24):在排序陣列中查詢數字排序陣列
- Some 困難的數論
- MYSQL練習1: DQL查詢練習MySql
- MySQL:查詢欄位數量多少對查詢效率的影響MySql
- 給定一個 32 位有符號整數,將整數中的數字進行反轉。符號
- 演算法金 | 平均數、眾數、中位數、極差、方差,標準差、頻數、頻率 一“統”江湖演算法
- 數字邏輯練習題-(二進位制/16進位制模擬)
- MySQL 查詢所有表中的記錄數MySql
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列
- 藍橋杯:基礎練習 查詢整數
- mysql查詢表列數MySql
- Leetcode 通過率最高的困難題 N皇后 II 【回溯解法-剪枝】LeetCode
- 數字通訊系統中的“頻寬”
- MySQL 查詢字串的個數MySql字串
- 在oracle中,select語句查詢欄位中非純數字值Oracle
- redo切換頻率查詢
- leetcode:41. 缺失的第一個正數(困難,陣列)LeetCode陣列
- 演算法微軟100題數字查詢演算法微軟
- 陣列中查詢給定值陣列
- sql查詢入門練習題SQL
- MATLAB自帶的函式tabulate統計一個陣列中各數字(元素)出現的頻數、頻率Matlab函式陣列
- 入門MySQL——查詢語法練習MySql
- mysql三表關聯查詢練習MySql
- HyperGraphDB查詢中的變數變數
- Antd中InputNumber元件數字限制小數位數元件
- leetcode 解題:7. 整數反轉 @ 彈出和推入數字 & 溢位前進行檢查LeetCode
- matlab統計 頻數、頻率和累積頻率Matlab
- 查詢數N二進位制中1的個數(JS版 和 Java版)JSJava
- 數字查詢統計重複
- Oralce中設定小數點位數