質問編集履歴

4

行数追加

2020/09/14 04:29

投稿

Satomi07
Satomi07

スコア24

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,10 @@
13
13
  しかし他の列(固有IDの数、speedの合計)はすべて同じで、行数も増減ありません。
14
14
 
15
15
  stringで保存しているのに、INSERT, OVERWRITEしただけで値が変わってしまうことはありますか?
16
+
17
+
18
+
19
+ 行数は約11億件です。
16
20
 
17
21
 
18
22
 

3

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

2020/09/14 04:29

投稿

Satomi07
Satomi07

スコア24

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

2

クエリ修正

2020/09/14 02:28

投稿

Satomi07
Satomi07

スコア24

test CHANGED
File without changes
test CHANGED
@@ -88,7 +88,7 @@
88
88
 
89
89
  latitude,longitudeは一切計算していません>
90
90
 
91
- FROM old table
91
+ FROM new table
92
92
 
93
93
 
94
94
 

1

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

2020/09/14 02:21

投稿

Satomi07
Satomi07

スコア24

test CHANGED
File without changes
test CHANGED
@@ -42,8 +42,84 @@
42
42
 
43
43
  speed string
44
44
 
45
-
45
+ d_speed
46
+
47
+ ma_speed
46
48
 
47
49
 
48
50
 
51
+
52
+
53
+ new tableに新たな列を作り、INSERT OVERWRITEしています。
54
+
55
+
56
+
57
+ INSERT INTO new table
58
+
59
+ ID string,
60
+
61
+ latitude,
62
+
63
+ longitude,
64
+
65
+ speed,
66
+
67
+ <その他データの保管処理、計算処理など
68
+
69
+ latitude,longitudeは一切計算していません>
70
+
71
+ FROM old table
72
+
73
+
74
+
75
+
76
+
77
+ INSERT OVERWRITE new table
78
+
79
+ ID string,
80
+
81
+ latitude,
82
+
83
+ longitude,
84
+
85
+ speed,
86
+
87
+ <その他データの保管処理、計算処理など
88
+
89
+ latitude,longitudeは一切計算していません>
90
+
91
+ FROM old table
92
+
93
+
94
+
95
+ 検算のため列ごとにカウントしたり挿話を取りました。
96
+
97
+ SELECT COUNT(*) FROM new table
98
+
99
+ SELECT COUNT(*) FROM old table
100
+
49
-
101
+ →一致
102
+
103
+
104
+
105
+ SELECT COUNT (DISTINCT ID) FROM new table
106
+
107
+ SELECT COUNT (DISTINCT ID) FROM old table
108
+
109
+ →一致
110
+
111
+
112
+
113
+ SELECT SUM(latitude) FROM new table
114
+
115
+ SELECT SUM(latitude) FROM old table
116
+
117
+ →小数点二けた以下が不一致
118
+
119
+
120
+
121
+ SELECT SUM(speed) FROM new table
122
+
123
+ SELECT SUM(speed) FROM old table
124
+
125
+ →一致