質問するログイン新規登録

回答編集履歴

3

修正

2021/04/23 08:17

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -4,8 +4,9 @@
4
4
  質問のSELECTを、患者コードと基準日でgroup by して件数が5件以上のものを条件にする。
5
5
  ```SQL
6
6
  select *
7
- from A
7
+ FROM A a
8
+ LEFT JOIN B b ON a.患者コード = b.患者コード AND a.測定日 >= b.基準日
8
- where (患者コード, 基準日) in (
9
+ where (a.患者コード, b.基準日) in (
9
10
  select 患者コード, max_基準日
10
11
  from (
11
12
  -- 質問のSELECT

2

修正

2021/04/23 08:17

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -6,15 +6,15 @@
6
6
  select *
7
7
  from A
8
8
  where (患者コード, 基準日) in (
9
- select 患者コード, 基準日
9
+ select 患者コード, max_基準日
10
10
  from (
11
11
  -- 質問のSELECT
12
- SELECT a.患者コード,MAX(b.基準日) as 基準日,a.測定日
12
+ SELECT a.患者コード,MAX(b.基準日) as max_基準日,a.測定日
13
13
  FROM A a
14
14
  LEFT JOIN B b ON a.患者コード = b.患者コード AND a.測定日 >= b.基準日
15
15
  GROUP BY a.患者コード,a.測定日
16
16
  ) b
17
- group by 患者コード, 基準日
17
+ group by 患者コード, max_基準日
18
18
  having count(*) >= 5
19
19
  )
20
20
  ```

1

訂正

2021/04/23 08:07

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  select 患者コード, 基準日
10
10
  from (
11
11
  -- 質問のSELECT
12
- SELECT a.患者コード,MAX(b.基準日) as 基準日,a.測定日,COUNT(*)
12
+ SELECT a.患者コード,MAX(b.基準日) as 基準日,a.測定日
13
13
  FROM A a
14
14
  LEFT JOIN B b ON a.患者コード = b.患者コード AND a.測定日 >= b.基準日
15
15
  GROUP BY a.患者コード,a.測定日