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
- 每日一練(24):在排序陣列中查詢數字排序陣列
- MySQL:查詢欄位數量多少對查詢效率的影響MySql
- MYSQL練習1: DQL查詢練習MySql
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列
- Some 困難的數論
- Leetcode 通過率最高的困難題 N皇后 II 【回溯解法-剪枝】LeetCode
- 給定一個 32 位有符號整數,將整數中的數字進行反轉。符號
- mysql查詢表列數MySql
- 演算法金 | 平均數、眾數、中位數、極差、方差,標準差、頻數、頻率 一“統”江湖演算法
- leetcode:41. 缺失的第一個正數(困難,陣列)LeetCode陣列
- 在oracle中,select語句查詢欄位中非純數字值Oracle
- LeetCode 402 移掉K位數字 HERODING的LeetCode之路LeetCode
- MySQL 查詢字串的個數MySql字串
- 藍橋杯:基礎練習 查詢整數
- leetcode 解題:7. 整數反轉 @ 彈出和推入數字 & 溢位前進行檢查LeetCode
- 陣列中查詢給定值陣列
- mysql三表關聯查詢練習MySql
- 入門MySQL——查詢語法練習MySql
- sql查詢入門練習題SQL
- leetcode:1326. 灌溉花園的最少水龍頭數目(dp,困難)LeetCode
- MATLAB自帶的函式tabulate統計一個陣列中各數字(元素)出現的頻數、頻率Matlab函式陣列
- 【LeetCode-陣列】查詢大多數元素LeetCode陣列
- Mysql-基本練習(10-設定分組條件、查詢結果排序、限制查詢結果返回的數量、TRUNCATE刪除表記錄)MySql排序
- Leetcode171-190刷題筆記(非困難題)LeetCode筆記
- 數字中的1——leetcode233LeetCode
- MySQL講義第 47 講——select 查詢之查詢練習(五)MySql
- 機器學習最困難的部分:超引數除錯機器學習除錯
- 寫一個方法,當給定數字位數不足8位時,則在左邊補充0以補足8位數的方法
- leetcode13題——羅馬數字轉整數LeetCode
- Leetcode 刷題 ------1365.有多少小於當前數字的數字LeetCode
- JZ-070-數字序列中的某一位數字
- LeetCode每日一題: 位1的個數(No.191)LeetCode每日一題