mysql - 从一行中选择两个不同的值

标签 mysql sql postgresql pivot-table

<分区>

我想要这张 table

预订表

+----+--------+
| ID | Status |
+----+--------+
| 1  | R      |
| 2  | R      |
| 3  | C      |
| 4  | C      |
+----+--------+

到这个总个数

+----------+-----------+
| Reserved | Cancelled |
+----------+-----------+
| 2        | 2         |
+----------+-----------+

到目前为止我得到了这个-

SELECT Status AS Reserves 
FROM Booking WHERE Status = 'R' OR Status = 'C'

输出-

+----------+
| reserves |
+----------+
| R        |
| C        |
| R        |
| C        |
+----------+

最佳答案

WHERE 子句中的逻辑放入 CASE 表达式中,并对整个表求和:

SELECT
    SUM(CASE WHEN Status = 'R' THEN 1 END) AS Reserved,
    SUM(CASE WHEN Status = 'S' THEN 1 END) AS Cancelled
FROM Booking

关于mysql - 从一行中选择两个不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43772029/

相关文章:

php - 在 Debian Lenny 上将 PostgreSQL 8.1 升级到 8.3,但 zend php 仍然将 pgsql 识别为 8.1 版

mysql - 在 SQL 中使用 SELECT COUNT 查询限制

javascript - 通过 javascript 设置 asp 变量

MySQL 'AND' 子句没有正常运行

php - 访问类内函数中声明的变量 (PHP)

sql - Laravel Eloquent 多列计数

MYSQL逆向工程EXTRACT()

php - 在数据库中插入 1 次但 2 条记录

sql - 什么是 "bitmap index"?

postgresql - 扩展 Postgresql 列中的日期范围