我想找出一个关于sqlite的查询来解决我的问题并在我老板的眼中解除我的罪过,所以......
我有一张70 000 000行的表
表中的一列是域(称为域) 另一列称为sourceurl(这是一个完整的url字符串,其列域是url的域)
大部分来源Url都是唯一的,域名不是,您可以拥有来自同一域的多个源网址。
同一个表还包含其他列,这些列是重定向,框架,提及,nofollow,alttext等标志
我需要的是查询执行以下操作:
忽略任何null的标志,结果数据我想将所有剩余的行分组,但只从每个域中选择最多10个。
因此,在一天结束时,我需要来自每个域的10个示例网址,这些示例网址需要排除非null的标记。
答案 0 :(得分:1)
试试这个:
SELECT domain,
sourceurl
FROM MyTable AS T1
WHERE redirect <> 0 -- or whatever funny thing you want to do with the flags
AND rowid <= IFNULL((SELECT rowid
FROM MyTable AS T2
WHERE T2.domain = T1.domain
AND redirect <> 0 -- same flags filter
ORDER BY rowid
LIMIT 1
OFFSET 9), 'inf')
(您需要domain
列上的索引才能提高效率。)
答案 1 :(得分:-1)