回答編集履歴

4

脱字

2018/09/17 07:32

投稿

hihijiji
hihijiji

スコア4150

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- 上は。
21
+ 上は題意を間違えてました
22
22
 
23
23
  平文(サブクエリを使わない)にこだわって書き換えました。
24
24
 

3

題意を間違えてました

2018/09/17 07:32

投稿

hihijiji
hihijiji

スコア4150

test CHANGED
@@ -1,4 +1,4 @@
1
- こんなかな?
1
+ ~~こんなかな?~~
2
2
 
3
3
  ``` SQL
4
4
 
@@ -14,4 +14,46 @@
14
14
 
15
15
  ```
16
16
 
17
- sql_lover さんの指摘により日付もグループピング
17
+ ~~sql_lover さんの指摘により日付もグループピング~~
18
+
19
+
20
+
21
+ 上は。
22
+
23
+ 平文(サブクエリを使わない)にこだわって書き換えました。
24
+
25
+ 実行速度はおそらく遅いです。
26
+
27
+ ``` SQL
28
+
29
+ SELECT COUNT(1)
30
+
31
+ FROM table AS t1
32
+
33
+ INNER JOIN table AS t2
34
+
35
+ ON t1.product = t2.product
36
+
37
+ AND
38
+
39
+ t1.order = t2.order
40
+
41
+ WHERE t1.ok
42
+
43
+ AND
44
+
45
+ t2.ok
46
+
47
+ AND
48
+
49
+ t1.machine = 1
50
+
51
+ AND
52
+
53
+ t2.machine = 2
54
+
55
+ AND
56
+
57
+ t1.time - t2.time BETWEEN '-00:00:01' AND '00:00:01'
58
+
59
+ ```

2

指摘により修正

2018/09/17 07:30

投稿

hihijiji
hihijiji

スコア4150

test CHANGED
@@ -13,3 +13,5 @@
13
13
  HAVING COUNT(1) >= 2 AND MAX(time) - MIN(time) <= '00:00:01'
14
14
 
15
15
  ```
16
+
17
+ sql_lover さんの指摘により日付もグループピング

1

指摘により修正

2018/09/17 04:05

投稿

hihijiji
hihijiji

スコア4150

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  WHERE ok = True
10
10
 
11
- GROUP BY order
11
+ GROUP BY order, CAST(time AS date)
12
12
 
13
13
  HAVING COUNT(1) >= 2 AND MAX(time) - MIN(time) <= '00:00:01'
14
14