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

回答編集履歴

2

修正

2017/10/03 16:22

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -11,13 +11,9 @@
11
11
  select t1.up_time, t1.picupno, t2.sum_qty
12
12
  from test as t1
13
13
  inner join (
14
- select sub_id, sum(qty) as sum_qty from test group by sub_id
14
+ select sub_id, max(up_time) as max_up_time, sum(qty) as sum_qty from test group by sub_id
15
15
  ) as t2
16
- on t1.sub_id=t2.sub_id
16
+ on t1.sub_id=t2.sub_id and t1.up_time=t2.max_up_time
17
- inner join (
18
- select sub_id, max(up_time) as sum_qty from test group by sub_id
19
- ) as t2
20
- on t1.sub_id=t3.sub_id
21
17
  ```
22
18
  MySQLはサンプルデータを触っている程度なので、大量のデータでのSQLの記述による性能差などは見地がありません。
23
19
  なので、結果をフィードバックして頂けると喜びます。

1

追記

2017/10/03 16:22

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -5,4 +5,19 @@
5
5
  ,(select sum(qty) from test where sub_id=t1.sub_id) as sum_qty
6
6
  from test as t1
7
7
  where up_time=(select max(up_time) from test where sub_id=t1.sub_id)
8
- ```
8
+ ```
9
+ 一応別解(相関問い合わせによるサブクエリーを使用しない版)
10
+ ```SQL
11
+ select t1.up_time, t1.picupno, t2.sum_qty
12
+ from test as t1
13
+ inner join (
14
+ select sub_id, sum(qty) as sum_qty from test group by sub_id
15
+ ) as t2
16
+ on t1.sub_id=t2.sub_id
17
+ inner join (
18
+ select sub_id, max(up_time) as sum_qty from test group by sub_id
19
+ ) as t2
20
+ on t1.sub_id=t3.sub_id
21
+ ```
22
+ MySQLはサンプルデータを触っている程度なので、大量のデータでのSQLの記述による性能差などは見地がありません。
23
+ なので、結果をフィードバックして頂けると喜びます。