我有一个包含对象显示/点击统计信息的表格 表格包含以下列:id,objectId,pageUrl,event('show'或'click') 例如:
id, objectId, pageUrl, event
1, 1, /cars/, show
2, 1, /cars/, show
3, 1, /items/, show
4, 2, /cars/, show
5, 2, /items/, show
我能以简单的方式获得具有唯一pageUrl的每个对象的计数吗?
数据集的结果必须是:
objectId, counter
1, 2
2, 2
对于id为1的对象,有3条记录,但是pageUrl / cars /出现两次,因此counter必须仅用于唯一的url。
答案 0 :(得分:5)
尝试此查询:
SELECT objectId, COUNT(DISTINCT(pageUrl)) AS 'counter'
FROM Table
GROUP BY objectId
答案 1 :(得分:0)
SELECT objectId, COUNT(*) AS count FROM ( SELECT objectId,pageUrl FROM table GROUP BY objectId,pageUrl ) z GROUP BY objectId
答案 2 :(得分:0)
答案 3 :(得分:0)
首先,我生成了内部选择查询,以对具有相同objectId
和pageUrl
的记录进行分组。最后,我计算了pageURL
每objectId
。
SELECT
objectId,
COUNT(pageUrl)
FROM (SELECT objectId,pageUrl FROM table GROUP BY objectId,pageUrl) z
GROUP BY objectId