回答編集履歴

2

追加

2017/05/23 12:54

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -16,6 +16,22 @@
16
16
 
17
17
  group by 1 order by 1 ;
18
18
 
19
+
20
+
21
+ select emp.bumon 部門,
22
+
23
+ avg(kyuyo) 部門の平均給与,
24
+
25
+ count(*) 部門の社員数,
26
+
27
+ count(heikin) 平均給与以上の社員数
28
+
29
+ from emp left join (select bumon, avg(kyuyo) heikin from emp group by 1) ave on ave.bumon=emp.bumon and emp.kyuyo>heikin
30
+
31
+ group by 1 order by 1 ;
32
+
33
+
34
+
19
35
  ```
20
36
 
21
37
 

1

修正

2017/05/23 12:54

投稿

A.Ichi
A.Ichi

スコア4070

test CHANGED
@@ -1,20 +1,6 @@
1
1
  PostgreSQLで作成
2
2
 
3
3
  ```sql
4
-
5
-
6
-
7
- select * from emp;
8
-
9
- select bumon 部門,
10
-
11
- avg(kyuyo) 部門の平均給与,
12
-
13
- count(*) 部門の社員数,
14
-
15
- sum(case when kyuyo>(select avg(x.kyuyo) from emp x where x.bumon=bumon) then 1 else 0 end) 平均給与以上の社員数
16
-
17
- from emp group by 1 order by 1 ;
18
4
 
19
5
 
20
6
 
@@ -40,20 +26,6 @@
40
26
 
41
27
  10 | 287500.000000000000 | 8 | 3
42
28
 
43
- 20 | 305000.000000000000 | 6 | 3
44
-
45
- 30 | 292857.142857142857 | 7 | 4
46
-
47
- (3 rows)
48
-
49
-
50
-
51
- 部門 | 部門の平均給与 | 部門の社員数 | 平均給与以上の社員数
52
-
53
- ------+---------------------+--------------+----------------------
54
-
55
- 10 | 287500.000000000000 | 8 | 3
56
-
57
29
  20 | 305000.000000000000 | 6 | 2
58
30
 
59
31
  30 | 292857.142857142857 | 7 | 4