汇总来自多个记录的数据

swhit

我正在尝试使用PostgreSQL创建报告,其中列出了医生,特定问题的评分数量以及这些评分的平均值作为一条记录。

我进行了以下简单查询:

select p.token, count(r.id), avg(a.val)
from xx.tb1 r
inner join xx.tb2 p using (id)
inner join xx.tb3 a using (id)
where a.question_id = 1
group by token

将连续的question_id添加到查询中,最有效的方法是什么?我可以在多个select语句中使用相同的简单查询,但这似乎不是最有效的方法。工会不起作用,因为我希望按医生对数据进行分组。

谢谢!

迈克尔·邓拉普

您应该简单地将question_id添加为一列。然后,如果有问题,每个医生的行数将尽可能多。

select p.token, a.question_id, count(r.review_id), avg(a.val_num_raw)
from xx.review r
inner join xx.predicate p using (predicate_id)
inner join xx.answer a using (review_id)
group by token, a.question_id

编辑根据下面的评论,您应该A)在Excel之类的工具中旋转数据(或使用可以作为功能部件进行旋转的MS SQL 2012),或B)建立一个如下所示的可怕查询:

select q1.token, q1.cnt, q1.av, q2.cnt, q2.av, ...
FROM (
    select p.token, count(r.review_id) as cnt, avg(a.val_num_raw) as av
    from xx.review r
    inner join xx.predicate p using (predicate_id)
    inner join xx.answer a using (review_id)
    where question_id = 1
    group by token) q1
LEFT JOIN (
    select p.token, count(r.review_id) as cnt, avg(a.val_num_raw) as av
    from xx.review r
    inner join xx.predicate p using (predicate_id)
    inner join xx.answer a using (review_id)
    where question_id = 2
    group by token) q2 using (token)
LEFT JOIN (
    select p.token, count(r.review_id) as cnt, avg(a.val_num_raw) as av
    from xx.review r
    inner join xx.predicate p using (predicate_id)
    inner join xx.answer a using (review_id)
    where question_id = 3
    group by token) q3 using (token)

我将重点介绍一下,因为此查询的性能将非常糟糕。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据库结构-来自多个表的项目

来自分类Dev

堆叠来自多个数据文件的行

来自分类Dev

R:如何将来自多个有序因子的数据汇总为一个变量

来自分类Dev

SQL-将来自多个表的汇总数据连接在一起

来自分类Dev

同步处理来自多个线程的数据

来自分类Dev

如何合并和显示来自多个表的数据

来自分类Dev

Javafx tableview具有来自多个类的数据

来自分类Dev

使用熊猫对来自多个csv文件的数据求和

来自分类Dev

来自多个Future调用的Scala汇总结果

来自分类Dev

如何在grafana中堆叠来自多个来源的数据

来自分类Dev

来自多个ajax请求的数组数据

来自分类Dev

来自多个ajax请求的数组数据

来自分类Dev

来自多个表的SQL数据

来自分类Dev

如何使用jq合并来自多个文件的JSON记录

来自分类Dev

同步来自多个数据源的数据

来自分类Dev

显示来自多个数据库表的数据

来自分类Dev

合并来自多个来源的元数据

来自分类Dev

计算来自多个表的数据

来自分类Dev

PHP MySQL来自多个表的最新记录

来自分类Dev

计算来自多个表的分组记录

来自分类Dev

汇总来自多个SQLite表的分数

来自分类Dev

解析来自多个Json对象的数据

来自分类Dev

来自多个表的PHP SELECT数据

来自分类Dev

显示来自多个Items Rails的数据?

来自分类Dev

仅显示来自多个数组值的单个记录

来自分类Dev

如何对来自多个传感器的记录数据进行分类?

来自分类Dev

来自多个细胞的近似实验数据

来自分类Dev

SQL查询汇总来自多个不同表的字段

来自分类Dev

Excel - 合并来自多个表的数据