【发布时间】:2010-10-26 12:39:52
【问题描述】:
您好,我正在使用以下架构进行查询,以了解用户按公司进行搜索的频率(该应用基本上允许您按公司进行搜索)
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
这很棒,因为它会返回每家公司和执行的搜索次数,但是我想将这些数字表示为百分比。我的下意识反应是单独运行以下查询:
SELECT COUNT(*) FROM search_log
获取该结果并仅在应用程序端进行除法,但这似乎效率低下,如果可能的话,我想在一个查询中完成所有操作(最好不使用子查询)但不知道如何获取该信息。
任何帮助或指导将不胜感激。
编辑:也许我并不完全清楚我在追求什么。而不是得到如下结果:
COMPANY_NAME | COUNT(*)
-----------------------
CompanyA | 1
CompanyB | 3
我宁愿看到:
COMPANY_NAME | COUNT(*)
-----------------------
CompanyA | 25%
CompanyB | 75%
显然格式不是很重要,因为 25,25%,0.25 都是可用的。
【问题讨论】:
-
占什么百分比?
-
占总数的百分比,所以如果我得到以下结果:CompanyA,1 AND CompanyB,3 -- 我宁愿看到 25% 和 75% 而不是 1 和 3
-
@Adriano Varoli Piazza -- 已修复。
标签: mysql