我有一个名为urlTraffic的表:
select count(1) as domain_visits, domain
from urlTraffic
group by domain
order by domain_visits DESC
LIMIT 250;
我需要获取所访问的前250个域名的数量,然后查找其访问过的所有位置的总数。
这为我提供了前250个最常访问的域名:
+---------------+-----------------+
| domain_visits | domain |
+---------------+-----------------+
| 183002 | google.com |
| 150181 | facebook.com |
结果如:
select distinct(location)
from urlTraffic
where domain = 'google.com';
我知道这给了我一个位置列表:
+---------------+-------------------------------------+
| domain_visits | domain | number_of_sites |
+---------------+-------------------------------------+
| 183002 | google.com | 15 |
| 150181 | facebook.com | 17 |
| 100002 | t.lkqd.net | 4 |
但是,我需要结果集如下:
session_destroy();
我知道有一种方法可以执行此查询,但无法弄清楚。
答案 0 :(得分:1)
这样的东西会返回指定的结果
SELECT COUNT(1) AS domain_visits
, ut.domain
, COUNT(DISTINCT ut.location) AS number_of_sites
FROM urlTraffic ut
GROUP BY ut.domain
ORDER BY domain_visits DESC
LIMIT 250
(如果我理解了规范。当第一个查询返回名为“domain”的列时,第一个查询的结果显示为名为“site”的列,这有点令人困惑。这个答案是基于假设对“网站”的引用实际上是为了引用“域名”。)