SQL新手。是否有可能将总和值设置为1,如果它是任何大于0的数字。我不想更改数据库中的数字,只想运行一个select来获取是否为该组的总和值大于0或0。
数据看起来像这样
col1 | col2
1 1
1 1
1 0
2 0
3 1
3 1
3 1
3 1
我目前可以接受这个
select table.col1, sum(table.col2)
from messages
group by table.col1;
col1 | col2
1 2
2 0
3 4
我希望它看起来像这样
col1 | col2
1 1
2 0
3 1
谢谢!
答案 0 :(得分:2)
您可以使用IF
:
SELECT col1, IF(SUM(col2) > 0, 1, 0) AS col2
FROM messages
GROUP BY col1
您还可以使用SQL标准CASE
表达式:
SELECT col1,
CASE WHEN SUM(col2) > 0
THEN 1
ELSE 0
END AS col2
FROM messages
GROUP BY col1
答案 1 :(得分:-1)
您应该能够在查询中使用测试作为新列。像这样的东西:
Select col1, if col1 > 0 then 1 else 0 from table1
虽然我不确定确切的语法,但您可能希望调查此方向