我在表中有三列“名称”、“交易”和“分数”。 数据示例:
name trade score
name1 trade1 10
name2 trade1 5
name3 trade1 20
name4 trade1 15
我想得到带有名称、状态的结果,其中状态可以具有三个值之一,即“平均”、“高于平均”和“低于平均”。其中平均值是“分数”列的平均值。现在根据以上数据,平均分是12.5。 所以预期的结果将是这样的:
name status
name1 below average
name2 below average
name3 above average
name4 above average
我不确定这是否可以通过单个查询或某些存储过程或函数来实现。请提出建议。
最佳答案
您可以使用以下查询:
SELECT name,
IF (total_score < average_score, 'below average',
IF(total_score > average_score, 'above average', 'average')) AS status
FROM (
SELECT name,
SUM(score) AS total_score,
(SELECT AVG(score) FROM mytable) AS average_score
FROM mytable
GROUP BY name ) AS t
关于mysql - 如何在mysql查询列中打印基于条件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580572/