mysql - 如何在 postgres 的这个查询中使用函数计数

标签 mysql sql postgresql

我需要为每个“Tecnico”计算“Estado de solicitud”,我的意思是,对于每个“Tecnico”我有多少“Abiertos”或“En espera”

这是我的

SELECT ti.FIRST_NAME AS "Técnico", std.STATUSNAME AS "Estado de solicitud"  
FROM WorkOrder wo 
LEFT JOIN WorkOrderStates wos ON wo.WORKORDERID=wos.WORKORDERID 
LEFT JOIN SDUser td ON wos.OWNERID=td.USERID 
LEFT JOIN AaaUser ti ON td.USERID=ti.USER_ID 
LEFT JOIN StatusDefinition std ON wos.STATUSID=std.STATUSID 
WHERE ( std.STATUSID != 3  ) AND (std.STATUSID != 4)

This is the result for the query

And something like this is that I need

最佳答案

您可以使用条件聚合来做到这一点:

SELECT ti.FIRST_NAME AS "Técnico",
       COUNT(*) FILTER (WHERE std.STATUSNAME = 'Abierto') as abiertos,
       COUNT(*) FILTER (WHERE std.STATUSNAME = 'En Espera') as en_esperas
FROM WorkOrder wo LEFT JOIN
     WorkOrderStates wos
     ON wo.WORKORDERID = wos.WORKORDERID LEFT JOIN
     SDUser td
     ON wos.OWNERID = td.USERID LEFT JOIN
     AaaUser ti
     ON td.USERID = ti.USER_ID LEFT JOIN
     StatusDefinition std
     ON wos.STATUSID = std.STATUSID 
WHERE std.STATUSID NOT IN (3, 4)
GROUP BY ti.FIRST_NAME

关于mysql - 如何在 postgres 的这个查询中使用函数计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498737/

相关文章:

java - 将预处理语句与 Dropwizard JDBI 和 PostgreSQL UUID 列一起使用

mysql 计算 sql 语法中的单词

mysql - 无法在 MySQL 5.1.44 中创建表

javascript - 服务器上每秒更新 MYSQL 值

sql - 在 SQL 中组合类似的行并聚合一些值

java - 通过 Apache Drill 访问 Postgres 中的复合数据

c# - 关于mssql和mysql中的select查询以及表名的保留关键字问题

mysql - 可以接受 NULL 外键吗?

mysql - 客户数据库结构

python - 使用 SQLite 的 Django 中的日期时间差异