好的,我有以下问题:
SELECT p.[PAGE_ID] ,
count(*) AS COUNT
FROM
( SELECT p.[PAGE_ID] ,
o.country_id
FROM [PAGES] p
JOIN PAGE_ITEM_POSITION pip ON p.PAGE_ID = pip.PAGE_ID
JOIN items i ON pip.item_id=i.item_id
GROUP BY tp.PAGE_ID,
i.country_id) AS p
GROUP BY p.page_id
因此,页面包含项目,项目在页面上的特定位置存在国家和项目(但这与问题无关)。这里没什么好复杂的。
我想知道的是,每个页面上有多少个不同的国家/地区,这正是上面的查询所做的。但是,我不禁想到这有点过于复杂。
内部查询组,以便我直接列出特定国家/地区的页面,然后外部部分再次由ID生成,以便给我计数。
这个查询可以简化吗?
答案 0 :(得分:1)
试试这个:
SELECT p.[PAGE_ID], COUNT(DISTINCT i.country_id)
FROM [PAGES] p
INNER JOIN PAGE_ITEM_POSITION pip ON p.PAGE_ID = pip.PAGE_ID
INNER JOIN items i ON pip.item_id=i.item_id
GROUP BY p.PAGE_ID