mysql - 获取 MYSQL 查询中别名列的百分比
问题描述
我需要在我的 MYSQL 查询中获取别名列的百分比。
我的查询如下..
SELECT
datediff(crm_job.job_completed_date,crm_job.job_received_date ) as days_diff,
COUNT(*) as total_jobs
FROM
crm_customer
RIGHT JOIN crm_job
ON crm_customer.customer_id = crm_job.customer_id
LEFT JOIN crm_customer_account
ON crm_customer.customeraccount_id = crm_customer_account.customer_account_id
where account_description='EWC' and job_completed_date IS NOT NULL
GROUP BY days_diff
days_diff | 总工作 |
---|---|
3 | 2 |
7 | 6 |
8 | 2 |
我需要在 total_jobs 列的右侧添加另一个名为 percent_jobs 的列,以显示 total_jobs 的百分比。我的意思是第一行的百分比工作是 20%,第二行是 60%,最后一行也是 20%。
提前致谢。
问候
艾伦
解决方案
将您的查询放入 CTE。然后你可以得到总和total_jobs
并除以它得到百分比。
WITH cte AS (
SELECT
datediff(crm_job.job_completed_date,crm_job.job_received_date ) as days_diff,
COUNT(*) as total_jobs
FROM
crm_customer
RIGHT JOIN crm_job
ON crm_customer.customer_id = crm_job.customer_id
LEFT JOIN crm_customer_account
ON crm_customer.customeraccount_id = crm_customer_account.customer_account_id
where account_description='EWC' and job_completed_date IS NOT NULL
GROUP BY days_diff
)
SELECT cte.*, ROUND(100 * total_jobs / total_total_jobs) AS percentage_jobs
FROM cte
CROSS JOIN (
SELECT SUM(cte.total_jobs) AS total_total_jobs
FROM cte
) AS t
CTE 需要 MySQL 8.x。如果您必须在旧版本中执行此操作,请将子查询定义为视图。
CREATE OR REPLACE VIEW total_jobs AS
SELECT
datediff(crm_job.job_completed_date,crm_job.job_received_date ) as days_diff,
COUNT(*) as total_jobs
FROM
crm_customer
RIGHT JOIN crm_job
ON crm_customer.customer_id = crm_job.customer_id
LEFT JOIN crm_customer_account
ON crm_customer.customeraccount_id = crm_customer_account.customer_account_id
where account_description='EWC' and job_completed_date IS NOT NULL
GROUP BY days_diff;
SELECT tj.*, ROUND(100 * tj.total_jobs / ttj.total_total_jobs) AS percentage_jobs
FROM total_jobs AS tj
CROSS JOIN (
SELECT SUM(total_jobs) AS total_total_jobs
FROM total_jobs
) AS ttj
推荐阅读
- javascript - jQuery多步表单验证
- c++ - 在 C++20 获得批准之前,我应该如何使用 day-since-epoch 值?
- bookshelf.js - Bookshelf.js: one-to-many relationship setup
- python - Points inside polygon in PostGIS
- rest - 移动应用 + REST API 身份验证
- r - KableExtra 有条件地格式化列上的特定行
- string - How to avoid empty lists to be appended & parentheses and brackets
- angular - 取消选择线所有图表线应禁用
- javascript - Keydown 反复触发。可以避免吗?
- doctrine-orm - Pagerfanta 不喜欢我的教义查询