sql - COUNT 一个表的不同列中的值 SQL

标签 sql oracle

例如,我的表有数据 - 10 名志愿者。 志愿者有两种类型——学生和工作人员。 如何使用此 View 在一个表中插入几列:

COUNT(Volunteer_id), COUNT(Volunteer_id) WHERE Volunteer_type = '学生', COUNT(Volunteer_id WHERE Volunteer_type = '员工'

SELECT COUNT(Volunteer_id) AS "TOTAL VOLUNTEERS"
from volunteer
UNION
SELECT COUNT(Volunteer_id) AS "TOTAL VOLUNTEERS"
from volunteer
WHERE Volunteer_type = 'Staff'
UNION
SELECT COUNT(Volunteer_id) AS "TOTAL VOLUNTEERS"
from volunteer
WHERE Volunteer_type = 'Student'

这些语句目前表示为行,但我想让它们成为列

最佳答案

使用条件聚合:

SELECT
    COUNT(*) AS "Total Volunteers",
    COUNT(CASE WHEN Volunteer_tpye = 'Staff' THEN 1 END) AS "Staff Volunteers",
    COUNT(CASE WHEN Volunteer_tpye = 'Student' THEN 1 END) AS Student
FROM volunteers

关于sql - COUNT 一个表的不同列中的值 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40834692/

相关文章:

php - MySQL将两个表中的两个字段合并为结果集中的一个字段

sql - Oracle 日期匹配

mysql - 当没有找到行时返回 SQL 中的默认值

Oracle TO_DATE 令人头痛

java - 为 clob 变量赋值

sql - 如何检索 SQL Server 中表中特定 Id 发生的更改历史记录

java - 用于删除重复的 Oracle SQL Db 表条目的 NativeQuery 不起作用(请参阅代码)

sql - 将 LINQ to SQL 与动态表一起使用

oracle - Tomcat 上的 Grails Oracle - JNDI 配置 - InstanceAlreadyExistsException 等错误

php - 无法让 mysql_fetch_rows 配合