回答編集履歴
2
質問内容の訂正に合わせてコード修正
test
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
companyが"A" で、value が Null でないYearが最大のレコードを抽出
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
```SQL
|
2
6
|
|
3
|
-
SELECT
|
7
|
+
SELECT table_a.*
|
4
8
|
|
5
9
|
FROM table_a
|
6
10
|
|
@@ -17,3 +21,35 @@
|
|
17
21
|
WHERE value Is Not Null AND company="A");
|
18
22
|
|
19
23
|
```
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
company毎に、value が Null でないYearが最大のレコードを抽出
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
```SQL
|
32
|
+
|
33
|
+
SELECT a.*
|
34
|
+
|
35
|
+
FROM
|
36
|
+
|
37
|
+
table_a AS a INNER JOIN
|
38
|
+
|
39
|
+
(SELECT company, Max(Year) AS maxYear
|
40
|
+
|
41
|
+
FROM table_a
|
42
|
+
|
43
|
+
WHERE value Is Not Null
|
44
|
+
|
45
|
+
GROUP BY company) AS b
|
46
|
+
|
47
|
+
ON a.company = b.company AND a.year = b.maxYear
|
48
|
+
|
49
|
+
WHERE a.value Is Not Null;
|
50
|
+
|
51
|
+
```
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
1
コードの間違い訂正
test
CHANGED
@@ -6,12 +6,14 @@
|
|
6
6
|
|
7
7
|
WHERE
|
8
8
|
|
9
|
+
company="A" AND
|
10
|
+
|
9
11
|
value is not null AND
|
10
12
|
|
11
|
-
year = (SELECT Max(
|
13
|
+
year = (SELECT Max(Year)
|
12
14
|
|
13
|
-
FROM table_a
|
15
|
+
FROM table_a
|
14
16
|
|
15
|
-
WHERE
|
17
|
+
WHERE value Is Not Null AND company="A");
|
16
18
|
|
17
19
|
```
|