sql sum重复行

时间:2016-01-22 13:04:23

标签: sql postgresql

我这样做了一个查询:

SELECT nr_budynku, nr_pokoju, count (DISTINCT nr_szafy) AS count
FROM szafa
INNER JOIN szafa_miejsce_przechowywania ON szafa.id = szafa_miejsce_przechowywania.id_szafa
INNER JOIN miejsce_przechowywania ON szafa_miejsce_przechowywania.id_miejsce_przechowywania = miejsce_przechowywania.id
GROUP BY nr_budynku, nr_pokoju, nr_szafy;

查询给了我这个结果:

 nr_budynku | nr_pokoju | count
------------+-----------+-------
 1          |        25 |     1
 1          |        25 |     1
 1          |       123 |     1
 2          |       122 |     1

但我想要这个:

 nr_budynku | nr_pokoju | count
------------+-----------+-------
 1          |        25 |     2
 1          |       123 |     1
 2          |       122 |     1

此查询有什么问题? 我用sum函数尝试了一些东西,但情况更糟。 我在postgres工作 szafa中的id是我的主键,但是szafa中的nr_szafy描述了衣柜的数量,在我的示例中,数据库id是从1到10,但是nr_szafy是从1到4。

1 个答案:

答案 0 :(得分:0)

SELECT nr_budynku, nr_pokoju, count (nr_szafy) as count
FROM szafa
INNER JOIN szafa_miejsce_przechowywania ON szafa.id = szafa_miejsce_przechowywania.id_szafa
INNER JOIN miejsce_przechowywania ON szafa_miejsce_przechowywania.id_miejsce_przechowywania = miejsce_przechowywania.id
group by nr_budynku, nr_pokoju;

从分组中删除nr_szafy

相关问题