如果我有一张包含以下内容的表格:
www.domain.com/test
www.domain.com/test/another-test
www.domain.com/test/another-test/new-level
如何返回每个国家/地区的百分比:
+---------+-------------+
| Country | campaign_id |
+---------+-------------+
| US | 1 |
| FR | 1 |
| FR | 1 |
| UK | 1 |
| NL | 2 |
| DE | 2 |
+---------+-------------+
这是我到目前为止的地方:
+---------+------------+
| Country | Percentage |
+---------+------------+
| US | 25 |
| FR | 50 |
| UK | 25 |
+---------+------------+
请注意,如果更容易,则可以返回0.25。
答案 0 :(得分:1)
编写子查询以获取广告系列中的总行数,然后将其划分为按国家/地区分组的行数。
SELECT a.country, ROUND(100 * COUNT(*)/b.total, 2) AS percentage
FROM yourTable AS a
CROSS JOIN (
SELECT COUNT(*) AS total
FROM yourTable
WHERE campaign_id = 1) AS b
WHERE a.campaign_id = 1
GROUP BY a.country
答案 1 :(得分:1)
您已经给出了什么(看起来像是计算具有特定ID的国家/地区):
SELECT country, ((COUNT(campaign_id)*100)/(SELECT SUM(campaign_id) FROM campaigns WHERE campaign_id = 1)) AS percent
FROM campaigns
WHERE campaign_id = 1
GROUP BY country
答案 2 :(得分:1)
这是我的案例解决方案:
SELECT Country,
(campaign_id/((select SUM(campaign_id) FROM table1 where campaign_id = 1))*100) as percentage
FROM tablename
WHERE campaign_id = 1
GROUP BY Country, campaign_id