【问题标题】:How to include a missing value left out by a query containing GROUP BY?如何包含包含 GROUP BY 的查询遗漏的缺失值?
【发布时间】:2019-12-21 01:14:21
【问题描述】:

我正在尝试从一个表中检索下面查询中显示的列,该表包含表中所有房屋的信息

select id, address, rooms,
  area, count ( id ), avg( area )
from house
group by rooms
order by rooms asc, area asc
;

查询应显示包含相同房间数的房屋数量以及表中每所房屋的平均面积。

但是,目前有 2 所房子的房间数相同,这导致此查询将另一所房子排除在结果之外。我该如何解决这个重复的问题,例如如何根据房间数显示表格中所有房屋的信息,即使之前已经找到了具有相同房间数的房屋?

这两行是否具有相同的count ( id )avg ( area ) 并不重要。事实上,这将是我们想要的结果。

【问题讨论】:

    标签: sqlite group-by aggregate-functions


    【解决方案1】:

    您可以使用CTE获取房屋数量和平均面积并加入表格:

    with cte as (
      select rooms, count(id) counter, avg(area) averagearea
      from house
      group by rooms
    )
    select 
      h.id, h.address, h.rooms, h.area,
      c.counter, c.averagearea
    from house h inner join cte c
    on c.rooms = h.rooms
    order by h.rooms asc, h.area asc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多