gpt4 book ai didi

php - 在 mySQL 查询期间添加属性 "on the fly"

转载 作者:行者123 更新时间:2023-11-28 23:56:25 26 4
gpt4 key购买 nike

我有一个如下所示的查询:

SELECT avg(round({$cohort1}/{$cohort2} * 100)) as overall_average,
`category`, `value`, {$cohort1},{$cohort2},`group`,
`quadrant`,round({$cohort1}/{$cohort2} * 100) as index_value
from {$table};

当我包含平均片段时,这并不能完美地工作。那只返回一行。我需要它来返回所有行。如果我删除平均部分,那么一切都很好,但我没有计算的平均值。不过,我可以在我的 PHP 中使用单独的查询来获取它。

但是,我意识到我需要根据群组的值导出象限(字符串)的值。这些就是规则。问题是我不知道如何将其合并到我的查询中。

IF (the_value > overall_average and index_value > 100) THEN `quadrant` = "Priority One"
ELSEIF (the_value < overall_average and index_value > 100) THEN `quadrant` = "Potential"
ELSEIF (the_value > overall_average and index_value < 100) THEN `quadrant` = "Basics"
ELSEIF (the_value < overall_average and index_value < 100) THEN `quadrant` = "Ignore"

你能帮我想出一个完整的查询吗?如果更简单的话,我也愿意在从数据库返回数据后用 PHP 处理数据。

最佳答案

您可以使用 CASE 子句:

SELECT column1, column2, column2 as alias,..., 
CASE
WHEN the_value > overall_average and index_value > 100 THEN 'Priority One'
...
WHEN another_condition THEN 'Potential'
...
ELSE 'default value'
END AS quadrant
FROM table

引用 https://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#operator_case

关于php - 在 mySQL 查询期间添加属性 "on the fly",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31547634/

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