mysql - 在一个 SQL 查询中对同一列中相同类型的不同值求和

标签 mysql group-by count case

目前我正在执行以下操作来计算列中不同语言的付款方式:

$sql = "SELECT `payment`, count(*) as number FROM Test GROUP BY `payment` ";

结果:

Cash 2
Bar 4
Credit-Card 5
Kreditkarte 8
Invoice 12
Rechnung 27

知道如何在一个 SQL 查询中对不同语言的相同支付方式求和,以获得以下内容,但显然没有括号中的部分:

Bar 6 (sum of Cash and Bar)
Kreditkarte 13 (sum of Credit-Card and Kreditkarte)
Rechnung 39 (sum of Invoice and Rechnung)

表名:测试

payment       
===========
Cash
Bar
Credit-Card
Kreditkarte
Invoice
Rechnung

最佳答案

使用 CASE 表达式将 'Cash' 更改为 'Bar', 'Credit-Card''Kreditkarte''Invoice''Rechnung' 并按其结果分组:

SELECT CASE payment
         WHEN 'Cash' THEN 'Bar'
         WHEN 'Credit-Card' THEN 'Kreditkarte'
         WHEN 'Invoice' THEN 'Rechnung'
         ELSE payment
       END AS payment, 
       COUNT(*) AS number 
FROM Test 
GROUP BY 1;

关于mysql - 在一个 SQL 查询中对同一列中相同类型的不同值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72593568/

相关文章:

php - 如何根据数据库中的 csv 重新填充/重新选择/自动选择多个选择框值?

javascript - 在 Google map 上显示搜索查询的结果

Mysql - 从分组数据中获取n个结果

java - 如何用java计算pdf文件中的字母数量

MySQL 多重连接和不同计数

sql - 不同的值对 SQL

MySql:如何仅组合特定行?

php - 我如何使用 php 在多维数组中按键分组项目

python - 如何显示找到正则表达式匹配项的行数

PHP/MySQL - 为每个用户在 1 个表中计算 2 个不同的总数