回答編集履歴
2
質問内容の訂正に合わせてコード修正
answer
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
companyが"A" で、value が Null でないYearが最大のレコードを抽出
|
|
2
|
+
|
|
1
3
|
```SQL
|
|
2
|
-
SELECT
|
|
4
|
+
SELECT table_a.*
|
|
3
5
|
FROM table_a
|
|
4
6
|
WHERE
|
|
5
7
|
company="A" AND
|
|
@@ -7,4 +9,19 @@
|
|
|
7
9
|
year = (SELECT Max(Year)
|
|
8
10
|
FROM table_a
|
|
9
11
|
WHERE value Is Not Null AND company="A");
|
|
10
|
-
```
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
company毎に、value が Null でないYearが最大のレコードを抽出
|
|
15
|
+
|
|
16
|
+
```SQL
|
|
17
|
+
SELECT a.*
|
|
18
|
+
FROM
|
|
19
|
+
table_a AS a INNER JOIN
|
|
20
|
+
(SELECT company, Max(Year) AS maxYear
|
|
21
|
+
FROM table_a
|
|
22
|
+
WHERE value Is Not Null
|
|
23
|
+
GROUP BY company) AS b
|
|
24
|
+
ON a.company = b.company AND a.year = b.maxYear
|
|
25
|
+
WHERE a.value Is Not Null;
|
|
26
|
+
```
|
|
27
|
+
|
1
コードの間違い訂正
answer
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
SELECT id
|
|
3
3
|
FROM table_a
|
|
4
4
|
WHERE
|
|
5
|
+
company="A" AND
|
|
5
6
|
value is not null AND
|
|
6
|
-
year = (SELECT Max(
|
|
7
|
+
year = (SELECT Max(Year)
|
|
7
|
-
FROM table_a
|
|
8
|
+
FROM table_a
|
|
8
|
-
WHERE
|
|
9
|
+
WHERE value Is Not Null AND company="A");
|
|
9
10
|
```
|