回答編集履歴

1

質問に書かれたテーブルに従ってSQLを修正しました。

2020/07/01 13:34

投稿

etsuhisa
etsuhisa

スコア416

test CHANGED
@@ -1,6 +1,10 @@
1
- 実際に動かし検証していませんが、質問の内容からすると以下のよう条件になるのではないでしょうか?
1
+ 項目名はすべ小文字なのですね。
2
2
 
3
+ また、男性は男性の平均年齢なのでasobi_a.sex = '1'ですね。
4
+
3
- ちなみ、男性の一致する年齢も女性平均年齢でよいのでしょうか?
5
+ 質問あるデータだと一致するレコードはないですが、以下のようになると思ます。
6
+
7
+ (女性の血液型をB型にすれば1件ヒットします。)
4
8
 
5
9
 
6
10
 
@@ -16,18 +20,22 @@
16
20
 
17
21
  where
18
22
 
19
- ((asobi_b.bl = 'a' and asobi_a.sex = '0')
23
+ (asobi_b.bl = 'a' and asobi_a.sex = '0'
20
24
 
21
- or (asobi_b.bl = 'o' and asobi_a.sex = '1'))
25
+ and asobi_a.age = (select round(avg(age)) from asobi_a where asobi_a.sex = '0')
22
26
 
23
- and (asobi_a.name = asobi_b.name
27
+ or
24
28
 
25
- and asobi_a.FLAG = 0 and asobi_b.JOTAI = '00')
29
+ asobi_b.bl = 'o' and asobi_a.sex = '1'
26
30
 
27
- and asobi_a.AGE = (select round(avg(AGE)) from asobi_a where asobi_a.sex = '0')
31
+ and asobi_a.age = (select round(avg(age)) from asobi_a where asobi_a.sex = '1'))
32
+
33
+ and asobi_a.name = asobi_b.name
34
+
35
+ and asobi_a.flag = 0 and asobi_a.jotai = '00'
28
36
 
29
37
  group by
30
38
 
31
- sex
39
+ sex;
32
40
 
33
41
  ```