mysql 需要SQL查询帮助以查找百分比份额

zbdgwd5y  于 2023-02-03  发布在  Mysql
关注(0)|答案(1)|浏览(117)

我正在使用MYSQL运行SQL查询
下面是该表的结构
表-1:作业数据
job_id:作业的唯一标识符
actor_id:执行元的唯一标识符
事件:决定/跳过/转移
语言:内容的语言
time_spent:查看作业所花费的时间(秒)
org:参与者的组织
ds:yyyy/mm/dd格式的日期。它以文本形式存储,我们使用presto来运行。不需要日期函数
数据集:
| 枣|作业标识|执行元ID|事件|语言|花费时间|组织|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| 2020年11月30日|二十一|千零一|跳越|英语|十五|A类|
| 2020年11月30日|二十二|小行星1006|转移|阿拉伯文|二十五|乙|
| 2020年11月29日|二十三|1003|决策|波斯语|二十个|C级|
| 2020年11月28日|二十三|小行星1005|转移|波斯语|二十二|D级|
| 2020年11月28日|二十五|小行星1002|决策|印地语|十一|乙|
| 2020年11月27日|十一|小行星|决策|法语|一百零四|D级|
| 2020年11月26日|二十三|1004年|跳越|波斯语|五十六|A类|
| 2020年11月25日|二十个|1003|转移|意大利语|四十五|C级|
我试图找到每种语言的百分比份额:每种语言对不同内容的份额。计算每种语言在过去30天内的百分比份额?
我的查询

SELECT language,
ROUND(100.0 * SUM(IF(event IN ('transfer', 'decision'), 1, 0)) / COUNT(job_id), 2) AS percentage_share
FROM job_data
WHERE ds BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()
GROUP BY language;

返回0行
我什么结果也没有

pes8fvy9

pes8fvy91#

您需要解析日期,因为它们不是以MySQL可以自动解析的格式存储的。

WHERE STR_TO_DATE(ds, '%m/%d/%Y') BETWEEN ...

相关问题