gpt4 book ai didi

mysql - 可以比较 MySQL 上多行的 COUNT(*) 吗?

转载 作者:行者123 更新时间:2023-11-29 01:19:27 25 4
gpt4 key购买 nike

您好,我正在处理一个查询,该查询使用以下架构来了解用户按公司进行搜索的频率(该应用程序基本上允许您按公司进行搜索)

SEARCH_LOG
----------
date_of_search (DATETIME)
company_id (INT)


COMPANIES
---------
id (INT)
company_name (VARCHAR)

(there are more columns but these are the relevant ones)

所以我正在运行以下查询:

SELECT company_name,COUNT(*) FROM companies LEFT OUTER JOIN search_log ON search_log.company_id=companies.id GROUP BY companies.id

这很棒,因为它会返回每家公司和执行的搜索次数,但我想将这些数字表示为百分比。我的下意识 react 是单独运行以下查询:

SELECT COUNT(*) FROM search_log

获取该结果并在应用程序端进行除法,但这看起来效率很低,如果可能的话我想在一个查询中完成所有操作(最好不使用子查询)但不知道如何获取该信息。

如有任何帮助或指导,我们将不胜感激。

编辑:也许我并不完全清楚我在追求什么。而不是得到这样的结果:

COMPANY_NAME | COUNT(*)
-----------------------
CompanyA | 1
CompanyB | 3

我更愿意看到:

COMPANY_NAME | COUNT(*)
-----------------------
CompanyA | 25%
CompanyB | 75%

显然格式并不是特别重要,因为 25、25%、0.25 都是可用的。

最佳答案

虽然不是单个查询,但以下解决方案将使用变量在 SQL 中执行:

select @total:=count(*) from search_log;  
select company_id,count( * ) , count( * )/@total as percentage from search_log group by company_id;

关于mysql - 可以比较 MySQL 上多行的 COUNT(*) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/869095/

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