gpt4 book ai didi

MySQL-多组和多计数

转载 作者:行者123 更新时间:2023-11-29 10:46:40 26 4
gpt4 key购买 nike

我有一个类似名为 urlTraffic 的表:

+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | bigint | NO | MUL | NULL | |
| location | char(17) | NO | | NULL | |
| domain | varchar(128) | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+

我需要获取访问量最高的 250 个域的计数,然后查找访问过的位置总数。

这为我提供了前 250 个最常访问的域:

 select count(1) as domain_visits, domain 
from urlTraffic
group by domain
order by domain_visits DESC
LIMIT 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 |

我知道有一种方法可以执行此查询,但无法弄清楚。

最佳答案

这样的事情将返回指定的结果

  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

(如果我理解了规范。这有点令人困惑,因为第一个查询的结果显示为名为“site”的列,而第一个查询返回名为“domain”的列。这个答案基于假设对“站点”的引用实际上是对“域”的引用。)

关于MySQL-多组和多计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44440453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com