mysql从sum中以最小值或加号重新返回值
对于我的投票制度,我有两种可能的价值观可以投票支持。1或-1,此值正好保存在数据库中 现在我选择/计算像field\u up和field\u down这样分开的值。我想将查询更改为只输出一个值,如下所示: 如果我们有“+6”和-5,它应该返回+1(带+) 如果我们有-3和+2i,它应该返回-1(带-) 现在我有以下问题mysql从sum中以最小值或加号重新返回值,mysql,sum,calculated-field,Mysql,Sum,Calculated Field,对于我的投票制度,我有两种可能的价值观可以投票支持。1或-1,此值正好保存在数据库中 现在我选择/计算像field\u up和field\u down这样分开的值。我想将查询更改为只输出一个值,如下所示: 如果我们有“+6”和-5,它应该返回+1(带+) 如果我们有-3和+2i,它应该返回-1(带-) 现在我有以下问题 SELECT SUM(CASE thumb when 1 then 1 else 0 end) AS "thumbs_up", SUM(CASE thumb when -1
SELECT
SUM(CASE thumb when 1 then 1 else 0 end) AS "thumbs_up",
SUM(CASE thumb when -1 then 1 else 0 end) AS "thumbs_down"
FROM ..etc
提前谢谢
Thea.试试这个
SELECT
SUM( CASE WHEN thumb =1 THEN 1 ELSE 0 END) as "thumbs_up",
SUM( CASE WHEN thumb =-1 THEN 1 ELSE 0 END) as "thumbs_down",
FROM ..etc
试试这个
SELECT
SUM( CASE WHEN thumb =1 THEN 1 ELSE 0 END) as "thumbs_up",
SUM( CASE WHEN thumb =-1 THEN 1 ELSE 0 END) as "thumbs_down",
FROM ..etc
两件事。您可以将查询简化为:
SELECT
SUM(thumb = 1) AS thumbs_up,
SUM(thumb = -1) AS thumbs_down
FROM ..etc
因为在mysql中(仅)true
是1
而false
是0
其次,您需要查询该查询以调整输出:
SELECT concat(if(thumbs_up > thumbs_down, '+', ''), thumbs_up - thumbs_down)
FROM (
SELECT
SUM(thumb = 1) AS thumbs_up,
SUM(thumb = -1) AS thumbs_down
FROM ..etc
) x
两件事。您可以将查询简化为:
SELECT
SUM(thumb = 1) AS thumbs_up,
SUM(thumb = -1) AS thumbs_down
FROM ..etc
因为在mysql中(仅)true
是1
而false
是0
其次,您需要查询该查询以调整输出:
SELECT concat(if(thumbs_up > thumbs_down, '+', ''), thumbs_up - thumbs_down)
FROM (
SELECT
SUM(thumb = 1) AS thumbs_up,
SUM(thumb = -1) AS thumbs_down
FROM ..etc
) x
@你可以尝尝新鲜茶this@Freshtea你可以试试这个