Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
在Oracle SQL表中的单独列中显示计数条件的结果_Sql_Oracle_Count_Pivot_Aggregate Functions - Fatal编程技术网

在Oracle SQL表中的单独列中显示计数条件的结果

在Oracle SQL表中的单独列中显示计数条件的结果,sql,oracle,count,pivot,aggregate-functions,Sql,Oracle,Count,Pivot,Aggregate Functions,我有一个表,我正在使用GROUP BY生成一个单独列中的条件计数,该计数基于调用字母是否在表中以多种传播方法列出 SELECT p.CallLetters, COUNT(p.PropMethod) FROM logpropmethod p GROUP BY p.CallLetters HAVING COUNT(p.PropMethod) > 1 这将产生以下结果: WIBC 3 WQLZ 2 WWVR 2 CIBX 2 WTTS 3 WFBQ

我有一个表,我正在使用GROUP BY生成一个单独列中的条件计数,该计数基于调用字母是否在表中以多种传播方法列出

 SELECT p.CallLetters, COUNT(p.PropMethod)
 FROM logpropmethod p
 GROUP BY p.CallLetters
 HAVING COUNT(p.PropMethod) > 1
这将产生以下结果:

 WIBC   3
 WQLZ   2
 WWVR   2
 CIBX   2
 WTTS   3
 WFBQ   2
 WCBH   2
 WKSV   2

我希望能够在GROUPBY结果的单独列中列出传播方法。只有三种不同的传播方法,因此我设想结果将列在PROPMETHOD1、PROPMETHOD2、PROPMETHOD3列中。我不太明白如何做到这一点,而不会导致“not a GROUP BY expression”错误。

我认为您需要条件聚合:

SELECT CallLetters, COUNT(*) as total
    SUM(CASE WHEN PropMethod = 'PROPMETHOD1' THEN 1 ELSE 0 END) as PROPMETHOD1,
    SUM(CASE WHEN PropMethod = 'PROPMETHOD2' THEN 1 ELSE 0 END) as PROPMETHOD2,
    SUM(CASE WHEN PropMethod = 'PROPMETHOD3' THEN 1 ELSE 0 END) as PROPMETHOD3
FROM logpropmethod
GROUP BY CallLetters
HAVING COUNT(*) > 1