回答編集履歴
4
先ほどwindow関数を使ったSQLにて誤って回答してしまいましたので訂正します
test
CHANGED
@@ -1 +1,35 @@
|
|
1
|
+
先ほどwindow関数を使ったSQLにて誤って回答してしまいました。
|
1
|
-
|
2
|
+
以下あらためて、再度訂正して回答します。
|
3
|
+
|
4
|
+
select m.name,b.comic_name from magazines m
|
5
|
+
inner join
|
6
|
+
(
|
7
|
+
select distinct a.comic_name,a.magazine_id from (
|
8
|
+
select w.comic_name,w.magazine_id,w.id,w.user_name,count(*) from
|
9
|
+
(
|
10
|
+
select
|
11
|
+
c.name as comic_name
|
12
|
+
,c.magazine_id
|
13
|
+
,v.user_id as kind
|
14
|
+
,u.id
|
15
|
+
,u.name as user_name
|
16
|
+
,u.admin as admin
|
17
|
+
from comics c
|
18
|
+
inner join votes v on c.id = v.comic_id
|
19
|
+
inner join users u on v.user_id = u.id
|
20
|
+
) w where w.admin = 1
|
21
|
+
group by w.comic_name,w.magazine_id,w.id,w.user_name
|
22
|
+
) a
|
23
|
+
) b
|
24
|
+
on m.id = b.magazine_id
|
25
|
+
;
|
26
|
+
|
27
|
+
+---------+---------------+
|
28
|
+
| name | comic_name |
|
29
|
+
+---------+---------------+
|
30
|
+
| 雑誌A | コミックA |
|
31
|
+
| 雑誌B | コミックC |
|
32
|
+
+---------+---------------+
|
33
|
+
2 rows in set (0.00 sec)
|
34
|
+
|
35
|
+
mysql>
|
3
誤植ありました
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
誤って投稿してしまいました
|
1
|
+
誤って投稿してしまいました。削除依頼します
|
2
勘違いして異なる回答してました
test
CHANGED
@@ -1,29 +1 @@
|
|
1
|
-
先ほど、PostgreSQL版で投稿してしまいました。ごめんなさい。
|
2
|
-
|
1
|
+
誤って投稿してしまいました
|
3
|
-
|
4
|
-
select w.magazin_name,w.comic_name
|
5
|
-
from (
|
6
|
-
select t.magazin_name,t.comic_name,t.kind,t.user_name
|
7
|
-
from
|
8
|
-
(
|
9
|
-
select m.name as magazin_name
|
10
|
-
,c.name as comic_name
|
11
|
-
,v.user_id as kind
|
12
|
-
,v.id as user_name
|
13
|
-
from magazines m
|
14
|
-
inner join comics c on m.id = c.magazine_id
|
15
|
-
inner join votes v on c.id = v.comic_id
|
16
|
-
) t
|
17
|
-
where t.kind = 2 -- 管理者
|
18
|
-
) w
|
19
|
-
group by w.magazin_name,w.comic_name
|
20
|
-
order by 1,2
|
21
|
-
;
|
22
|
-
|
23
|
-
+--------------+---------------+
|
24
|
-
| magazin_name | comic_name |
|
25
|
-
+--------------+---------------+
|
26
|
-
| 雑誌A | コミックA |
|
27
|
-
| 雑誌B | コミックC |
|
28
|
-
+--------------+---------------+
|
29
|
-
2 rows in set (0.00 sec)
|
1
PostgreSQL版を誤って投稿したので訂正しました
test
CHANGED
@@ -1,27 +1,29 @@
|
|
1
|
+
先ほど、PostgreSQL版で投稿してしまいました。ごめんなさい。
|
1
|
-
|
2
|
+
訂正して以下回答です。
|
2
3
|
|
3
|
-
select w.magazin_name,w.comic_name
|
4
|
+
select w.magazin_name,w.comic_name
|
4
5
|
from (
|
5
|
-
|
6
|
+
select t.magazin_name,t.comic_name,t.kind,t.user_name
|
6
|
-
,count(*) over (partition by t.magazin_name,t.comic_name,t.kind) mken
|
7
|
-
|
7
|
+
from
|
8
|
-
|
8
|
+
(
|
9
|
-
|
9
|
+
select m.name as magazin_name
|
10
|
-
|
10
|
+
,c.name as comic_name
|
11
|
-
|
11
|
+
,v.user_id as kind
|
12
|
-
|
12
|
+
,v.id as user_name
|
13
|
-
|
13
|
+
from magazines m
|
14
|
-
|
14
|
+
inner join comics c on m.id = c.magazine_id
|
15
|
-
|
15
|
+
inner join votes v on c.id = v.comic_id
|
16
|
-
|
16
|
+
) t
|
17
|
-
|
17
|
+
where t.kind = 2 -- 管理者
|
18
18
|
) w
|
19
19
|
group by w.magazin_name,w.comic_name
|
20
20
|
order by 1,2
|
21
21
|
;
|
22
22
|
|
23
|
+
+--------------+---------------+
|
23
|
-
magazin_name | comic_name |
|
24
|
+
| magazin_name | comic_name |
|
24
|
-
--------------+------------
|
25
|
+
+--------------+---------------+
|
25
|
-
雑誌A
|
26
|
+
| 雑誌A | コミックA |
|
26
|
-
雑誌B
|
27
|
+
| 雑誌B | コミックC |
|
28
|
+
+--------------+---------------+
|
27
|
-
|
29
|
+
2 rows in set (0.00 sec)
|