gpt4 book ai didi

java - Oracle、Hibernate、分组依据、LISTAGG

转载 作者:太空宇宙 更新时间:2023-11-04 14:16:13 27 4
gpt4 key购买 nike

我有表“值”:

int id;
double amount;
Date date;
String cryptoName;

我需要接收带有“日期”和“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"

但在这种情况下,我收到两列:“日期”和“结果”以及我的列表,但我需要接收“日期”列和几列,具体取决于表中的唯一“cryptoName”数量我怎样才能做到这一点?

最佳答案

从 11g R1 开始,您可以使用 PIVOT 运算符。参见例如: http://oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1.php

或者,如果您知道列 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

关于java - Oracle、Hibernate、分组依据、LISTAGG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27707500/

27 4 0
文章推荐: java - 使用 Java 方法 indexof 与 substring 结合创建新字符串时出现错误输出
文章推荐: java - 使用多个求和查找有序集的组合数
文章推荐: javascript - JQuery 按顺序动画列表项然后淡出列表并重复
文章推荐: html - 截断样式不适用于 标签,但适用于
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com