回答編集履歴

2

質問内容の訂正に合わせてコード修正

2016/11/01 12:24

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -1,6 +1,10 @@
1
+ companyが"A" で、value が Null でないYearが最大のレコードを抽出
2
+
3
+
4
+
1
5
  ```SQL
2
6
 
3
- SELECT id
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

コードの間違い訂正

2016/11/01 12:24

投稿

hatena19
hatena19

スコア33715

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(b.Year)
13
+ year = (SELECT Max(Year)
12
14
 
13
- FROM table_a AS b
15
+ FROM table_a
14
16
 
15
- WHERE b.value Is Not Null AND b.company="A");
17
+ WHERE value Is Not Null AND company="A");
16
18
 
17
19
  ```