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
Java Oracle、Hibernate、分组依据、LISTAGG_Java_Oracle_Hibernate - Fatal编程技术网

Java Oracle、Hibernate、分组依据、LISTAGG

Java Oracle、Hibernate、分组依据、LISTAGG,java,oracle,hibernate,Java,Oracle,Hibernate,我有表“值”: 我需要接收带有“日期”和“cryptoName”列表的结果,并接收如下内容: btc ltc drk 42coin 27-DEC-14 0.2 5.0 100.0 0.01 28-DEC-14 0.22 5.5 99.5 0.02 29-DEC-14 0.23 6.1 100.6 0.03 30-DEC-14

我有表“值”:

我需要接收带有“日期”和“cryptoName”列表的结果,并接收如下内容:

             btc       ltc       drk      42coin
27-DEC-14    0.2       5.0       100.0    0.01
28-DEC-14    0.22      5.5       99.5     0.02
29-DEC-14    0.23      6.1       100.6    0.03
30-DEC-14    0.25      6.0       101.2    0.03
我可以这样做:

select "Values"."date", LISTAGG("amount", ', ')  WITHIN GROUP (ORDER BY "cryptoName") as "result" from "Values" GROUP BY "Values"."date"
但在本例中,我会收到两列:“date”和“result”以及我的列表,但我需要收到“date”列和几列,这取决于表中“cryptoName”的唯一性
如何操作?

从11g R1开始,您可以使用PIVOT操作符。例如,见:

或者,如果您知道ctyptoName列的所有唯一值,则可以将DECODE函数与SUM一起使用,如下所示:

select date,
sum(decode(cryptoName,'value1',amount,0)) as Value1
,sum(decode(cryptoName,'value2',amount,0)) as Value2
,...
from Values
group by date

但我不知道值的唯一性如何,这取决于唯一“cryptoName”的计数
select date,
sum(decode(cryptoName,'value1',amount,0)) as Value1
,sum(decode(cryptoName,'value2',amount,0)) as Value2
,...
from Values
group by date