0

我有一个包含两列重要性的表,客户 ID# 和时间戳。每当客户订购某物时,都会创建五行,其中包含客户 ID # 和完成时间的时间戳。

如果超过五行,则表示我们的系统没有正确处理订单,可能有问题,我被要求查看日志以查找任何收到超过 5 行的人的客户 ID,如以及他们收到错误金额的次数以及每次收到的数量(当不是 5 时)

我想让它告诉我,每当同一个客户 ID(在“ID”列中)有超过 5 行具有相同时间戳(“stamp”列)时,它会告诉我 1. 此人的客户 ID 2. 这个次数该客户 ID 发生了异常,并且 3. 每个异常中有多少行(是 6 行还是 7... 或更多?等等)(如果 #2 是 3 次,我希望 #3 是一个数组像 { 7, 8, 6 })

我不知道这是否可能......但任何帮助都将不胜感激。谢谢!

4

2 回答 2

0

这将为您提供超过 5 行的 ID 和时间戳。我假设所有 5 行(或更多行)的时间戳是相同的。

SELECT A.ID, A.TIMESTAMP 
FROM "TABLE" A 
WHERE 
  (SELECT COUNT(B.ID) 
   FROM "TABLE" B 
   WHERE B.ID = A.ID 
     AND B.TIMESTAMP = A.TIMESTAMP) > 5
于 2013-07-31T18:53:49.630 回答
0

这应该让你大部分时间到达那里:

SELECT `CustomerID`, `Timestamp`, COUNT(1)
FROM
    OrderItems
GROUP BY
    `CustomerID`, `Timestamp`
HAVING
    COUNT(1) > 5
于 2013-07-31T18:49:16.280 回答