【发布时间】:2017-05-18 11:49:42
【问题描述】:
我是 Oracle SQL 初学者,希望这里有人可以帮助我。
到目前为止,我有一个非常基本的 Select 查询。 这是选择点击数据,即用户点击网站上某一类按钮的频率。
我的问题是我需要排除来自同一用户的重复或多次点击,但只排除那些重复的点击。
每个用户都有一个唯一的 ID (CUSTOMER_ID),我可以获得 HIT_DAY 或 HIT_DATETIME 来识别点击时间。
但是,在某些情况下,用户需要在同一天单击同一类的多个按钮。
是否有类似“让我仅记录用户 (CUSTOMER_ID) 不同或 点击时间 (HIT_DATETIME) 是唯一的 +/ - 10 秒?或者我还能在这里做什么?
我没有其他唯一标识符。
我的查询:
SELECT
owh.HIT_DAY
, owh.HIT_DATETIME
, COUNT(owh.CUSTOMER_ID) AS COUNT_CUSTOMER_ID
, owh.IS_P_CUSTOMER AS P_CUSTOMER
, owh.SHORTENED_URL AS URL_SHORTENED
, owh.MP
FROM
O_WIN_HITS owh
WHERE 1=1
AND ...
AND ...
AND ...
AND ...
GROUP BY
owh.HIT_DAY
, owh.HIT_DATETIME
, owh.IS_P_CUSTOMER
, owh.SHORTENED_URL
, owh.MP
ORDER BY
owh.HIT_DAY DESC
注意:这是更大查询的一部分。
非常感谢您的任何帮助, 迈克
【问题讨论】:
-
解释不清楚。你能展示一些示例数据和预期的输出吗?
-
所以当用户点击一次,9秒后,9秒后,9秒后,我把这四个算作一次点击。当用户单击一次,然后是 9 秒后,然后是 11 秒后,然后是 9 秒后,我将这四次视为两次单击。对吗?
标签: sql oracle select distinct