我有一个包含两列重要性的表,客户ID#和时间戳。每当客户订购某些东西时,就会创建五行,其中包含客户ID#和它经过的时间戳。
如果行数超过五行,则意味着我们的系统未正确处理订单并且可能存在问题,我被要求查看日志以查找收到的客户ID超过5,以及他们收到错误金额的次数和每次收到的次数(当时不是5次)
我想让它告诉我,只要同一个客户ID(在“ID”栏中)有超过5行且具有相同的时间戳(列“标记”),它就会告诉我1.该人的客户ID 2.如何很多时候,这个不规则性发生在那个客户ID上,以及3.每个不规则中有多少行(是6或7 ......或更多?等等)(如果#2是3次,我希望#3到是一个像{7,8,6}}
的数组我不知道这是否可能......但任何帮助都将受到赞赏。谢谢!
答案 0 :(得分:0)
这应该可以帮到你的大部分地方:
SELECT `CustomerID`, `Timestamp`, COUNT(1)
FROM
OrderItems
GROUP BY
`CustomerID`, `Timestamp`
HAVING
COUNT(1) > 5
答案 1 :(得分: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