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

質問編集履歴

4

行数追加

2020/09/14 04:29

投稿

Satomi07
Satomi07

スコア24

title CHANGED
File without changes
body CHANGED
@@ -7,6 +7,8 @@
7
7
  しかし他の列(固有IDの数、speedの合計)はすべて同じで、行数も増減ありません。
8
8
  stringで保存しているのに、INSERT, OVERWRITEしただけで値が変わってしまうことはありますか?
9
9
 
10
+ 行数は約11億件です。
11
+
10
12
  元データ テーブル
11
13
  ID string
12
14
  latitude string

3

分かりやすく書き替えました

2020/09/14 04:29

投稿

Satomi07
Satomi07

スコア24

title CHANGED
@@ -1,1 +1,1 @@
1
- 小数点2桁以下合計が異なる
1
+ Stringで保存した小数点の列、INSERT OVERWRITEしたテーブルで総和をとったところ小数点2桁以下合計が異なる
body CHANGED
File without changes

2

クエリ修正

2020/09/14 02:28

投稿

Satomi07
Satomi07

スコア24

title CHANGED
File without changes
body CHANGED
@@ -43,7 +43,7 @@
43
43
  speed,
44
44
  <その他データの保管処理、計算処理など
45
45
  latitude,longitudeは一切計算していません>
46
- FROM old table
46
+ FROM new table
47
47
 
48
48
  検算のため列ごとにカウントしたり挿話を取りました。
49
49
  SELECT COUNT(*) FROM new table

1

どのような計算をしたか、のせました。ありがとうございます。

2020/09/14 02:21

投稿

Satomi07
Satomi07

スコア24

title CHANGED
File without changes
body CHANGED
@@ -20,6 +20,44 @@
20
20
  latitude string
21
21
  longitude string
22
22
  speed string
23
+ d_speed
24
+ ma_speed
23
25
 
26
+
27
+ new tableに新たな列を作り、INSERT OVERWRITEしています。
28
+
29
+ INSERT INTO new table
30
+ ID string,
31
+ latitude,
32
+ longitude,
33
+ speed,
34
+ <その他データの保管処理、計算処理など
35
+ latitude,longitudeは一切計算していません>
36
+ FROM old table
37
+
38
+
39
+ INSERT OVERWRITE new table
40
+ ID string,
41
+ latitude,
42
+ longitude,
43
+ speed,
44
+ <その他データの保管処理、計算処理など
45
+ latitude,longitudeは一切計算していません>
46
+ FROM old table
47
+
48
+ 検算のため列ごとにカウントしたり挿話を取りました。
49
+ SELECT COUNT(*) FROM new table
50
+ SELECT COUNT(*) FROM old table
24
-
51
+ →一致
52
+
53
+ SELECT COUNT (DISTINCT ID) FROM new table
54
+ SELECT COUNT (DISTINCT ID) FROM old table
25
-
55
+ →一致
56
+
57
+ SELECT SUM(latitude) FROM new table
58
+ SELECT SUM(latitude) FROM old table
59
+ →小数点二けた以下が不一致
60
+
61
+ SELECT SUM(speed) FROM new table
62
+ SELECT SUM(speed) FROM old table
63
+ →一致