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

回答編集履歴

3

推敲

2020/08/24 04:20

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,4 @@
1
- 集計した後の結果でFを取得する事になるので、相関副問合せを使用する事になると思います。
1
+ 最小値が複数該当した場合を考えると、集計した後の結果でFを取得する事になるので、相関副問合せを使用する事になると思います。
2
2
  ```SQL
3
3
  SELECT V.*
4
4
  , (select F from TABLE where A=v.A and B=v.B and C=v.min_c)
@@ -8,5 +8,4 @@
8
8
  Group By A, B
9
9
  ) v
10
10
  ```
11
- 因みに、最小値が複数該当した場合、Fはどう扱うのでしょうか?
12
- 上記は、1件だけを想定しているので、複数ならMin()やmax()の指定が必要です。
11
+ 上記は、最小値が1件だけを想定しているので、複数ならMin()やmax()の指定が必要です。

2

追記

2020/08/24 04:20

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -7,4 +7,6 @@
7
7
  FROM TABLE
8
8
  Group By A, B
9
9
  ) v
10
- ```
10
+ ```
11
+ 因みに、最小値が複数該当した場合、Fはどう扱うのでしょうか?
12
+ 上記は、1件だけを想定しているので、複数ならMin()やmax()の指定が必要です。

1

訂正

2020/08/24 04:16

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  集計した後の結果でFを取得する事になるので、相関副問合せを使用する事になると思います。
2
2
  ```SQL
3
+ SELECT V.*
3
- SELECT *, (select F from TABLE where (A,B,C)=(v.A, v.B, v.min_c))
4
+ , (select F from TABLE where A=v.A and B=v.B and C=v.min_c)
4
5
  from (
5
6
  SELECT A, B, MIN(C) min_c, SUM(D), SUM(E)
6
7
  FROM TABLE