Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将两个条件不同的查询相互划分?_Sql_Postgresql_Group By_Pivot - Fatal编程技术网

Sql 如何将两个条件不同的查询相互划分?

Sql 如何将两个条件不同的查询相互划分?,sql,postgresql,group-by,pivot,Sql,Postgresql,Group By,Pivot,有一个表,其中包含managers列和status列。如何计算每个经理除N/A之外的所有状态的完整、分割的记录总数 我试图用这种方式来描绘,但没有任何结果 第一个问题 SELECT "Manager Name", count("Performance Score") as Perfomance FROM public.hr_dataset WHERE ("Performance Score" = 'Fully Meets') GROUP BY "Manager Name" ORDER BY

有一个表,其中包含managers列和status列。如何计算每个经理除N/A之外的所有状态的完整、分割的记录总数

我试图用这种方式来描绘,但没有任何结果

第一个问题

SELECT "Manager Name", count("Performance Score") as Perfomance FROM public.hr_dataset  WHERE 
("Performance Score" = 'Fully Meets') GROUP BY "Manager Name"
ORDER BY Perfomance DESC;
第二个问题

SELECT "Manager Name", count("Performance Score") FROM public.hr_dataset 
WHERE ("Performance Score" != 'N/A- too early to review') GROUP BY "Manager Name";

需要接收两个包含名称和值的列(1个查询/2个查询)

如果我理解正确,您可以使用
过滤器
根据性能分数限制计数的行

SELECT "Manager Name",
       count(*) FILTER (WHERE "Performance Score" = 'Fully Meets')
       /
       count(*) FILTER (WHERE "Performance Score" <> 'N/A- too early to review')
       FROM public.hr_dataset
       GROUP BY "Manager Name";
选择“经理姓名”,
计数(*)过滤器(其中“性能分数”=“完全满足”)
/
计数(*)过滤器(其中“绩效分数”为“不适用-审查太早”)
来自public.hr\u数据集
按“经理姓名”分组;

顺便说一句,你有糟糕的列名,有所有的空格、大写等等…

如果我理解正确,你可以使用
FILTER
根据性能分数限制计算的行数

SELECT "Manager Name",
       count(*) FILTER (WHERE "Performance Score" = 'Fully Meets')
       /
       count(*) FILTER (WHERE "Performance Score" <> 'N/A- too early to review')
       FROM public.hr_dataset
       GROUP BY "Manager Name";
选择“经理姓名”,
计数(*)过滤器(其中“性能分数”=“完全满足”)
/
计数(*)过滤器(其中“绩效分数”为“不适用-审查太早”)
来自public.hr\u数据集
按“经理姓名”分组;

顺便说一句,你有糟糕的列名,有所有的空格、大写等等…

你可以做条件聚合:

SELECT 
    "Manager Name", 
    COUNT(*) FILTER(WHERE "Performance Score" = 'Fully Meets') Perfomance_Fully_Meets,
    COUNT(*) Performance_Not_NA,
    AVG( ("Performance Score" = 'Fully Meets')::int) Performance_Ratio
FROM public.hr_dataset  
WHERE "Performance Score" != 'N/A- too early to review' 
GROUP BY "Manager Name"
ORDER BY Perfomance DESC;
这项工作如下:

  • 过滤除
    'N/A'
    以外的状态(这实际上包括
    'Fully Meets'
    状态)
  • 按经理姓名汇总
  • 对于每个管理器,对状态为“完全满足”的记录的数量进行有条件计数,并在列
    performance\u Fully\u Meets
  • 对于每个经理,在列
    性能\u Not \u NA
  • 如果您想要“完全满足”的比率记录,可以使用条件
    性能分数“=“Performance\u Fully\u Meets
    ”的结果上的
    AVG()
    ;在数字上下文中,真实条件的计算结果为
    1
    ,假为
    0

您可以执行条件聚合:

SELECT 
    "Manager Name", 
    COUNT(*) FILTER(WHERE "Performance Score" = 'Fully Meets') Perfomance_Fully_Meets,
    COUNT(*) Performance_Not_NA,
    AVG( ("Performance Score" = 'Fully Meets')::int) Performance_Ratio
FROM public.hr_dataset  
WHERE "Performance Score" != 'N/A- too early to review' 
GROUP BY "Manager Name"
ORDER BY Perfomance DESC;
这项工作如下:

  • 过滤除
    'N/A'
    以外的状态(这实际上包括
    'Fully Meets'
    状态)
  • 按经理姓名汇总
  • 对于每个管理器,对状态为“完全满足”的记录的数量进行有条件计数,并在列
    performance\u Fully\u Meets
  • 对于每个经理,在列
    性能\u Not \u NA
  • 如果您想要“完全符合”记录的比率,您可以使用条件的结果“性能分数”=“性能完全符合”,使用
    AVG()
    ;在数值上下文中,真条件的计算结果为
    1
    ,假条件的计算结果为
    0

是的,我知道,但我不是该数据库的架构师(非常感谢您的决定!)是的,我知道,但我不是该数据库的架构师(非常感谢您的决定!)非常感谢您的时间和决定!但请您澄清一下,为什么绩效栏中的“N/A”被过滤掉了。当我们在何处写入条件时,它们是否被过滤?那么性能比列的过滤方式是否相同?@Bimka09:是的<代码>'N/A's由
WHERE
子句过滤掉;然后,对计数进行评估。你能给我一些建议吗,我在哪里可以找到更多关于这个结构的信息?平均值((“性能分数”=“完全满足”)::int)@Bimka09:condition
“性能分数”=“完全满足”
在整数上下文中进行评估:true为
1
,false为
0
。求平均值可以得到满足记录组条件的记录比率。非常感谢您的时间和决定!但请您澄清一下,为什么绩效栏中的“N/A”被过滤掉了。当我们在何处写入条件时,它们是否被过滤?那么性能比列的过滤方式是否相同?@Bimka09:是的<代码>'N/A's由
WHERE
子句过滤掉;然后,对计数进行评估。你能给我一些建议吗,我在哪里可以找到更多关于这个结构的信息?平均值((“性能分数”=“完全满足”)::int)@Bimka09:condition
“性能分数”=“完全满足”
在整数上下文中进行评估:true为
1
,false为
0
。求平均值可以得到满足记录组中条件的记录比率。。