首页 > 解决方案 > 如果我有一个包含完整域名的数据库表,如何计算对二级域的请求?

问题描述

我有table1列的表domainrequest_time。这是记录的示例(我忽略了request_time,因为它对这个问题并不重要)。

Domain
--------------------
abc.example1.com
def.example1.com
def.example1.com
def.example1.com
yyy.example2.com
zzz.example3.com
ghi.example1.com
zzz.example3.com
def.example1.com
yyy.example2.com
zzz.example3.com
def.example1.com
ghi.example1.com
zzz.example3.com
yyy.example2.com
yyy.example2.com
def.example1.com
yyy.example2.com
zzz.example3.com
def.example1.com
ghi.example1.com
def.example1.com
zzz.example3.com
def.example1.com
yyy.example2.com
zzz.example3.com
yyy.example2.com
abc.example1.com

我正在使用这个查询来计算每个域的请求:

SELECT DISTINCT Domain, COUNT(*) AS REQUESTS_COUNT
FROM table1
GROUP BY Domain
ORDER BY REQUESTS_COUNT

结果我得到:

def.example1.com    9
yyy.example2.com    7
zzz.example3.com    7
ghi.example1.com    3
abc.example1.com    2

如何根据二级域名获得结果?

这是我想要得到的示例:

example1.com    14
example2.com    7
example3.com    7

我正在使用sqlite。

标签: sqlsqlite

解决方案


您可以使用substr()& instr()

select substr(domain, instr(Domain,'.') + 1), count(*) as REQUESTS_COUNT
from table1 t1
group by substr(domain, instr(Domain,'.') + 1)

推荐阅读