所以我对SQL很不在行,但是我想知道是否有人能够帮助我处理我为postgresql数据库精心设计的SQL查询。
select darkweb.site_title, count(*) from darkweb WHERE online ='t' GROUP BY darkweb.site_title HAVING count(*) > 1 ORDER BY count(*) DESC;下面的输出是:
No title | 1773
100x Your Coins in 24 Hours - Officially Hidden Service Anonymous | 319
403 Forbidden | 284
Index of / | 215
Thank you guys! | 182
404 Not Found | 155
SecureDrop | Protecting Journalists and Sources | 108
Clone CC : No.1 Trusted onion site for Cloned Credit Card. $2000/$5000 balance available | 77
| 76
Red Room | 63
DDos Challenge | 52
Dir | 51
Hacker | Cyber Crime Solution | 51
Deep Web Hosting | Secured and Anonymous | Linux PHP hosting 100MB and Unlimited Bandwidth | 51
BKA - Seizure Banner | 50
TorLinks | .onion Link List The Hidden Wiki Deep Web Onion Urls Onionland Tor linklist | 44
ONIONLIST - SAFE .ONION LINKS LISTING | 44输出a:理想情况下,我想要的输出是超过1个计数的site_titles的数量。
输出b:我还希望在一个数字中包含所有计数(count(*)的结果)的总和。
这是为了最终可以使用这两个输出(在sql之外),从输出b中减去输出a,以便计算重复站点的数量。
请告诉我是否有任何方法可以让我更清楚这一点,或者我可以提供帮助。
发布于 2019-06-25 07:19:08
您可以通过将上面的查询转换为子查询并使用COUNT()来获得输出A,使用SUM()来获得输出B来实现所需的功能:
select count(*) as a, sum(amount) as b from
(
select darkweb.site_title, count(*) as amount from darkweb WHERE online ='t' GROUP BY darkweb.site_title HAVING count(*) > 1
) site_title_counts但请注意,这将给出所有计数的总和,其中count >1-不确定这是否是您想要的。如果您需要所有计数的和,包括那些为1的计数,那么您需要在一个单独的查询中执行此操作:
select sum(amount) as b from
(
select darkweb.site_title, count(*) as amount from darkweb WHERE online ='t' GROUP BY darkweb.site_title
) site_title_countshttps://stackoverflow.com/questions/56744921
复制相似问题