当前位置: 首页 > 知识库问答 >
问题:

如何用一个SQL查询得到不同的计数?

洪俊捷
2023-03-14
select location,
       count(*) as tot_proj where project_status='live',
       sum(fte_count) as tot_emp where project_status='live' and fte_count != 'NULL'
from table_name 
group by location
select count(*) as tot_proj,
       "location" ,
       sum(fte_count::float) as ft
 from insights_view iv2 
 where project_status = 'Live' and fte_count != 'NULL'
 group by "location"

共有1个答案

谭玄天
2023-03-14

我认为您需要以下语法:

select location,
       count(*) filter(where project_status = 'live') as tot_proj ,
       sum(fte_count) filter(where project_status = 'live') as tot_emp 
from table_name 
group by location

这使用标准的filter子句聚合函数,Postgres支持这一功能。您不需要检查fte_count是否为null,因为sum()忽略null值(如果必须,则需要is not null而不是!='null')。

另一方面,如果您运行的是MySQL,而不是Postgres:

select location,
       sum(project_status = 'live') as tot_proj ,
       sum(case when project_status = 'live' then fte_count end) as tot_emp 
from table_name 
group by location
 类似资料:
  • 我想知道如何编写这个查询。 我知道这个实际的语法是假的,但它会帮助你理解我想要什么。我需要它的这种格式,因为它是一个大得多的查询的一部分。 我需要这所有返回在一个查询。 此外,它需要在一行中,因此以下操作将不起作用:

  • 问题内容: 我想知道如何编写此查询。 我知道这个实际的语法是虚假的,但是它将帮助您理解我想要的。我需要这种格式,因为它是更大查询的一部分。 我需要所有这些都在一个查询中返回。 此外,它必须排成一排,因此以下内容将不起作用: 问题答案: 您可以将语句与聚合函数一起使用。这与某些RDBMS中的函数基本相同:

  • 问题内容: 我需要在一个查询中计算两列中某些数据的出现总数。数据库位于SQL Server 2005中。 例如,我有此表: 我需要查询一个结果: 1.名为“约翰”的人数 2.年龄超过30岁的“约翰”的人数。 我可以通过这种方式对子查询进行操作(这只是示例): 但这非常慢,我正在寻找更快的方法。 与使用子查询相比,您是否知道一种更好的方法来计算一个查询中的少量计数? 问题答案: 使用CASE语句,您

  • 我想在一个名为的表中计算名为的同一列: 假设我需要在20180201和20180228之间计算“(值的类型=111或222或333)/(值的类型=444)”,我使用SQL查询如下: 我只选择了备注=“111或222或333”,我不知道为什么会出现所有备注(“555和666”),我得到的结果如下: SQL查询正确吗?我确信我的SQL查询有问题。非常感谢您的建议。

  • 我有两张有相同字段桌子。(请不要责怪设计)。 以下仅针对示例架构 表A ID 姓名 电话 键 所以,我想在一次查询中从满足条件“keys”的表A或表B中查询id、name,返回字段只有“id”和“name”,不管它是从表A或表B 中查询 从TABELA中选择a.id、a.name、b.id、b.name作为a,TABLEB作为b,其中a.keys=“1”或b.keys=“1” 它将重复的id、na

  • 我有桌子: 行程:Trip_Num、Trip_Type等 用户的出差历史记录:Username、Trip_Num等 我正在用php做一个项目,需要为一个特定的用户(通过他的用户名)做一个SQL查询--需要知道用户的Trips历史表中Trip_Num的Trip_Type。 附上我的表格: 更新:我需要计算trip_type中的每个值。我的意思是我想看到“步行”-4次,“自行车”-3次,这很好?...