Skip to content

Commit 5fa12af

Browse files
committed
feat: add sql solution to lc problem: No.0571
No.0571.Find Median Given Frequency of Numbers
1 parent 4fb7936 commit 5fa12af

File tree

3 files changed

+77
-24
lines changed

3 files changed

+77
-24
lines changed

solution/0500-0599/0571.Find Median Given Frequency of Numbers/README.md

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,22 +59,36 @@ Numbers 表:
5959

6060
<!-- 这里可写通用的实现逻辑 -->
6161

62-
<!-- tabs:start -->
63-
64-
### **Python3**
65-
66-
<!-- 这里可写当前语言的特殊实现逻辑 -->
62+
**方法一:开窗函数**
6763

68-
```python
69-
70-
```
71-
72-
### **Java**
73-
74-
<!-- 这里可写当前语言的特殊实现逻辑 -->
75-
76-
```java
64+
<!-- tabs:start -->
7765

66+
### **SQL**
67+
68+
```sql
69+
# Write your MySQL query statement below
70+
with t as (
71+
select
72+
*,
73+
sum(frequency) over(
74+
order by
75+
num asc
76+
) as rk1,
77+
sum(frequency) over(
78+
order by
79+
num desc
80+
) as rk2,
81+
sum(frequency) over() as s
82+
from
83+
Numbers
84+
)
85+
select
86+
round(avg(num), 1) median
87+
from
88+
t
89+
where
90+
rk1 >= s / 2
91+
and rk2 >= s / 2;
7892
```
7993

8094
### **...**

solution/0500-0599/0571.Find Median Given Frequency of Numbers/README_EN.md

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,32 @@ If we decompress the Numbers table, we will get [0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2
5353

5454
<!-- tabs:start -->
5555

56-
### **Python3**
57-
58-
```python
59-
60-
```
61-
62-
### **Java**
63-
64-
```java
65-
56+
### **SQL**
57+
58+
```sql
59+
# Write your MySQL query statement below
60+
with t as (
61+
select
62+
*,
63+
sum(frequency) over(
64+
order by
65+
num asc
66+
) as rk1,
67+
sum(frequency) over(
68+
order by
69+
num desc
70+
) as rk2,
71+
sum(frequency) over() as s
72+
from
73+
Numbers
74+
)
75+
select
76+
round(avg(num), 1) median
77+
from
78+
t
79+
where
80+
rk1 >= s / 2
81+
and rk2 >= s / 2;
6682
```
6783

6884
### **...**
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Write your MySQL query statement below
2+
with t as (
3+
select
4+
*,
5+
sum(frequency) over(
6+
order by
7+
num asc
8+
) as rk1,
9+
sum(frequency) over(
10+
order by
11+
num desc
12+
) as rk2,
13+
sum(frequency) over() as s
14+
from
15+
Numbers
16+
)
17+
select
18+
round(avg(num), 1) median
19+
from
20+
t
21+
where
22+
rk1 >= s / 2
23+
and rk2 >= s / 2;

0 commit comments

Comments
 (0)