回答編集履歴
5
コード修正
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
HAVING SUM(
|
11
11
|
CASE
|
12
12
|
WHEN ingredient_code = 'abc' OR ingredient_code ='xxx'
|
13
|
-
THEN
|
13
|
+
THEN 1 ELSE 0
|
14
14
|
END
|
15
15
|
) >= 2 /* この2は比較条件の数 */
|
16
16
|
```
|
4
コード修正
answer
CHANGED
@@ -19,9 +19,8 @@
|
|
19
19
|
SELECT menu_code
|
20
20
|
FROM table
|
21
21
|
GROUP BY menu_code
|
22
|
-
HAVING
|
23
|
-
SUM(CASE WHEN ingredient_code = 'abc' THEN 1 ELSE 0 END)
|
22
|
+
HAVING SUM(CASE WHEN ingredient_code = 'abc' THEN 1 ELSE 0 END) = 1
|
24
|
-
SUM(CASE WHEN ingredient_code = 'xxx' THEN 1 ELSE 0 END)
|
23
|
+
AND SUM(CASE WHEN ingredient_code = 'xxx' THEN 1 ELSE 0 END) = 1
|
25
24
|
|
26
25
|
```
|
27
26
|
テーブル設計やデータ件数とその偏りに大きく影響を受けると思うので、サブクエリ利用より常に早いか?と問われると怪しいです(むしろサブクエリ利用のほうが早いケースが多いかも)
|
3
コード修正
answer
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
GROUP BY menu_code
|
22
22
|
HAVING
|
23
23
|
SUM(CASE WHEN ingredient_code = 'abc' THEN 1 ELSE 0 END) *
|
24
|
-
SUM(CASE WHEN ingredient_code = 'xxx' THEN 1 ELSE 0 END)
|
24
|
+
SUM(CASE WHEN ingredient_code = 'xxx' THEN 1 ELSE 0 END) > 0
|
25
25
|
|
26
26
|
```
|
27
27
|
テーブル設計やデータ件数とその偏りに大きく影響を受けると思うので、サブクエリ利用より常に早いか?と問われると怪しいです(むしろサブクエリ利用のほうが早いケースが多いかも)
|
2
修正
answer
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
+
**当初投稿したものが間違っていたため再考したのですが、ましなコードは浮かびませんでした。
|
1
|
-
|
2
|
+
ごり押し気味な回答になっています。すみません**
|
2
3
|
|
3
4
|
サブクエリを使わないとなると、こんな感じでしょうか?
|
4
5
|
(動作確認してません)
|
@@ -9,10 +10,18 @@
|
|
9
10
|
HAVING SUM(
|
10
11
|
CASE
|
11
12
|
WHEN ingredient_code = 'abc' OR ingredient_code ='xxx'
|
12
|
-
THEN
|
13
|
+
THEN 0 ELSE 1
|
13
14
|
END
|
14
|
-
) >
|
15
|
+
) >= 2 /* この2は比較条件の数 */
|
15
16
|
```
|
17
|
+
または
|
18
|
+
```SQL
|
19
|
+
SELECT menu_code
|
20
|
+
FROM table
|
21
|
+
GROUP BY menu_code
|
22
|
+
HAVING
|
23
|
+
SUM(CASE WHEN ingredient_code = 'abc' THEN 1 ELSE 0 END) *
|
16
|
-
|
24
|
+
SUM(CASE WHEN ingredient_code = 'xxx' THEN 1 ELSE 0 END) = 0
|
17
25
|
|
26
|
+
```
|
18
|
-
|
27
|
+
テーブル設計やデータ件数とその偏りに大きく影響を受けると思うので、サブクエリ利用より常に早いか?と問われると怪しいです(むしろサブクエリ利用のほうが早いケースが多いかも)
|
1
修正
answer
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
**以下のコードでは目的を果たせません。失礼しました。再考中**
|
2
|
+
|
1
3
|
サブクエリを使わないとなると、こんな感じでしょうか?
|
2
4
|
(動作確認してません)
|
3
5
|
```SQL
|