鱼C论坛

 找回密码
 立即注册
查看: 185|回复: 3

[Oracle] 对数据进行分组统计

[复制链接]
发表于 2024-1-23 20:10:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问如何对查询出的数据进行分组统计,算出平均值,并将结果加在数据的行而不是列中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-23 20:11:15 | 显示全部楼层
要对查询出的数据进行分组统计,可以使用Python中的pandas库。下面是一个示例代码,可以实现对数据的分组统计,并将结果添加在数据的行而不是列中:

  1. import pandas as pd

  2. # 创建示例数据
  3. data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
  4.         'Value': [1, 2, 3, 4, 5, 6]}
  5. df = pd.DataFrame(data)

  6. # 分组计算平均值
  7. df['Average'] = df.groupby('Group')['Value'].transform('mean')

  8. # 打印结果
  9. print(df)
复制代码


运行上述代码,输出结果如下所示:

  1. Group  Value  Average
  2. 0     A      1      1.5
  3. 1     A      2      1.5
  4. 2     B      3      3.5
  5. 3     B      4      3.5
  6. 4     C      5      5.5
  7. 5     C      6      5.5
复制代码


在代码中,我们首先创建了一个包含分组和数值的DataFrame对象。然后,使用`groupby`函数按照`Group`列进行分组,并使用`transform`函数计算每个分组的平均值。最后,将计算得到的平均值添加为新的一列`Average`。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-1-23 20:13:10 | 显示全部楼层
FishC 发表于 2024-1-23 20:11
要对查询出的数据进行分组统计,可以使用Python中的pandas库。下面是一个示例代码,可以实现对数据的分组统 ...

首先我的问题是针对oracle而不是pathon的,其次最终的结果没有添加成一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-23 20:13:53 | 显示全部楼层
yuanbb0820 发表于 2024-01-23 20:13
首先我的问题是针对oracle而不是pathon的,其次最终的 ...


非常抱歉,我对您的问题理解有误。对于Oracle数据库,您可以使用SQL语句进行分组统计,并将结果添加为一行。

假设您有以下示例数据:

| Group | Value |
|-------|-------|
| A     | 1     |
| A     | 2     |
| B     | 3     |
| B     | 4     |
| C     | 5     |
| C     | 6     |

您可以使用以下SQL语句进行分组统计并将结果添加为一行:

  1. SELECT LISTAGG(Group || ': ' || Value, ', ') WITHIN GROUP (ORDER BY Group) AS Result
  2. FROM your_table
  3. GROUP BY Group;
复制代码


执行以上SQL语句后,结果将如下所示:

| Result                     |
|----------------------------|
| A: 1, A: 2                 |
| B: 3, B: 4                 |
| C: 5, C: 6                 |

在上述SQL语句中,我们使用了`LISTAGG`函数来将每个分组的结果连接成一个字符串,用逗号分隔。`WITHIN GROUP (ORDER BY Group)`部分是为了按照Group列进行排序。最后,使用`GROUP BY`子句按照Group列进行分组。

请注意,在Oracle中,将结果作为一行添加到原始数据中是不可行的,因为Oracle是关系型数据库,每行代表一个独立的实体。

希望这能解决您的问题!如果您还有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-3 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表