php - 根据 mysql sql 查询中的投票类型对总和进行加减

标签 php mysql sql

我得到了这样的表,称为votes

"id"    "votedElm"  "voteType"  "voteProcessed" "country"
"1"         "4" "0" "0" "US"
"2"         "5" "0" "0" "US"
"3"         "6" "1" "0" "US"
"4"         "8" "0" "0" "US"
"5"         "9" "0" "0" "US"
"6"         "10"    "0" "0" "US"
"7"         "10"    "0" "0" "US"
"8"         "10"    "0" "0" "US"
"9"         "8" "1" "0" "US"
"10"    "9" "1" "0" "US"
"11"    "20"    "1" "0" "US"
"12"    "10"    "1" "0" "US"
"13"    "10"    "1" "0" "US"
"14"    "20"    "0" "0" "US"
"15"    "22"    "0" "0" "US"
"16"    "20"    "0" "0" "US"
"17"    "21"    "0" "0" "US"
"18"    "10"    "0" "0" "US"
"19"    "10"    "0" "0" "US"
"20"    "20"    "0" "0" "US"
"21"    "21"    "0" "0" "US"
"22"    "22"    "0" "0" "US"
"23"    "22"    "0" "0" "US"
"24"    "22"    "1" "0" "US"

我使用这个sql来获取不同的like和sum: 选择 votedElm,count(votedElm) from votes where country = 'US' and voteType = 0 group by votedElm;

但是,在该表中,我有 voteType 0 和 10+投票,1-投票。

同一条sql中能否将+票数相加,并从总和中扣除-票数?而不是为此进行 2 个不同的查询?

我可以这样做吗?

最佳答案

是的,就像这样:

SELECT
  votedElm,
  SUM(CASE WHEN voteType = 0 THEN 1 ELSE -1 END) AS Totalcount 
FROM votes 
WHERE country = 'US'
GROUP BY votedElm;

在这里查看它的实际效果:

关于php - 根据 mysql sql 查询中的投票类型对总和进行加减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16456561/

相关文章:

mysql - SQL MAX 和 GROUP BY 与 WHERE

php - 使用 PHP 进行 Google 可视化

php - 动态加载网格中的记录(根据用户的请求)

php - 如何使用 PHP 找到文件的 MIME 类型?

php - 如何从 Wordpress 中具有多个类别的帖子返回子类别?

mysql - 在运行 Plesk 11 的 Centos 6 上安装 openEMM 时出现问题

php - Laravel 存储安全密码并进行身份验证

php - 比较一个数组中的数组值 PHP

SQL SELECT 使用 CASE 语句,但有多个条件

sql - 在sql server中使用OpenJson()序列化反序列化的对象