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

回答編集履歴

2

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

2016/11/01 12:24

投稿

hatena19
hatena19

スコア34367

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

コードの間違い訂正

2016/11/01 12:24

投稿

hatena19
hatena19

スコア34367

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(b.Year)
7
+ year = (SELECT Max(Year)
7
- FROM table_a AS b
8
+ FROM table_a
8
- WHERE b.value Is Not Null AND b.company="A");
9
+ WHERE value Is Not Null AND company="A");
9
10
  ```