如何在一个表中的单个查询上执行多个子查询?

弗朗西斯科·伊格纳西奥·霍约斯·阿米霍

我有两个表:BUILDINGAPARTMENT

建筑物具有ID_BUILDINGBUILDING_NAME(这仅是此问题的关键)

公寓有ID_BUILDINGN_APARTMENTSTOTAL_ROOMS

我需要做这样的查询:

| BUILDING NAME | TOTAL APARTMENTS | TOTAL APARTMENTS WITH 1 BEDROOM | TOTAL APARTMENTS WITH 2 BEDROOMS |
|---------------|------------------|---------------------------------|----------------------------------|
| BUILDING A    | 31               | 8                               | 0                                 
|_______________________________________________________________________________________________________|
| BUILDING B    | 20               | 14                              | 11                               
|________________________________________________________________________________________________________
| BUILDING C    | 41               | 90                              | 5                                
|________________________________________________________________________________________________________

卧室的数量可以在1到5之间。

为此,我附带了以下查询:

SELECT E.BUILDING_NAME as "name", COUNT(D.N_APARTMENTS) "TOTAL APARTMENTS", (SELECT COUNT(D1.TOTAL_ROOMS) FROM APARTMENT D1 WHERE D1.TOTAL_ROOMS = 1)
FROM BUILDING E
JOIN APARTMENT D 
ON E.ID_BUILDING = D.ID_BUILDING    
GROUP BY E.E.BUILDING_NAME
ORDER BY E.BUILDING_NAME;

不幸的是,这包括所有带1个房间的公寓,不包括BUILDING_NAME

| BUILDING NAME | TOTAL APARTMENTS | TOTAL APARTMENTS WITH 1 BEDROOM |
|---------------|------------------|---------------------------------|
| BUILDING A    | 31               | 122                             |
| BUILDING B    | 20               | 122                             |
| BUILDING C    | 41               | 122                             |

我确实在这里这里尝试了答案但是它们并不是完全相同的问题。

我认为解决方案可能是使用多个联接(或内部联接),但是我找不到正确的答案。

提前致谢。

卢卡斯·索兹达(Lukasz Szozda)

使用条件聚合:

SELECT E.BUILDING_NAME as "name", 
 COUNT(D.N_APARTMENTS) "TOTAL APARTMENTS", 
 SUM(CASE WHEN D.TOTAL_ROOMS = 1 THEN 1 ELSE 0 END) AS "TOTAL APARTMENTS WITH 1 BEDROOM"
FROM BUILDING E
JOIN APARTMENT D 
ON E.ID_BUILDING = D.ID_BUILDING    
GROUP BY E.E.BUILDING_NAME
ORDER BY E.BUILDING_NAME;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在一个查询中的多个子查询上正确使用多个group_concats而不区分?

来自分类Dev

SQL查询:如何在一个表内执行多个计数比较

来自分类Dev

如何在iOS的sqlite中的一个查询中执行多个select语句?

来自分类Dev

如何在一个iOS应用程序查询中从单个sqlite数据库的多个表中获取数据?

来自分类Dev

如何在一个mysql查询中合并来自不同表的多个计数?

来自分类Dev

如何在多个表的一个 mysql 查询中更新多列?

来自分类Dev

如何在一个查询中插入多个记录?

来自分类Dev

在单个查询中将多个行从一个表插入到Oracle中的另一个表

来自分类Dev

将多个子查询合并为一个查询

来自分类Dev

如何在同一个子文档上使用多个条件查询和过滤 Solr 6.4 子文档?

来自分类Dev

在单个HTML页面中查询多个SQL表并从一个或多个表返回结果

来自分类Dev

如何在同一存储过程中对单个表使用多个更新查询

来自分类Dev

SQL基础知识:如何在一个查询中从多个表中获取详细信息?

来自分类Dev

在一个mysql查询中执行多个语句

来自分类Dev

在一个调用中执行多个mysql查询

来自分类Dev

如何从单个表中将 2 个查询组合到 sql 中的一个查询数据库?

来自分类Dev

在一个查询中依靠同一表上的多个左联接

来自分类Dev

如何将两个查询合并到一个子查询中

来自分类Dev

PHP MYSQL如何在一个查询中链接来自多个表的数据元素

来自分类Dev

如何在SQL语句中定义一个子查询作为表别名多次使用?

来自分类Dev

如何使用一个SQL查询创建多个表

来自分类Dev

如何在一个查询中从两个表中检索数据

来自分类Dev

在 Opaleye 中,如何在同一个查询中插入两个表?

来自分类Dev

如何在PHP代码中将两个表中的两个查询合并为一个查询?

来自分类Dev

如何在DB2中将日期列表与另一个子查询联接

来自分类Dev

如何在一个字段中执行年份范围的MySQL查询

来自分类Dev

如何在Firebase中执行以下查询?(条件不止一个)

来自分类Dev

如何查询另一个表中的上一条记录?

来自分类Dev

如何在一个查询中更新来自不同表的两个记录?

Related 相关文章

  1. 1

    如何在一个查询中的多个子查询上正确使用多个group_concats而不区分?

  2. 2

    SQL查询:如何在一个表内执行多个计数比较

  3. 3

    如何在iOS的sqlite中的一个查询中执行多个select语句?

  4. 4

    如何在一个iOS应用程序查询中从单个sqlite数据库的多个表中获取数据?

  5. 5

    如何在一个mysql查询中合并来自不同表的多个计数?

  6. 6

    如何在多个表的一个 mysql 查询中更新多列?

  7. 7

    如何在一个查询中插入多个记录?

  8. 8

    在单个查询中将多个行从一个表插入到Oracle中的另一个表

  9. 9

    将多个子查询合并为一个查询

  10. 10

    如何在同一个子文档上使用多个条件查询和过滤 Solr 6.4 子文档?

  11. 11

    在单个HTML页面中查询多个SQL表并从一个或多个表返回结果

  12. 12

    如何在同一存储过程中对单个表使用多个更新查询

  13. 13

    SQL基础知识:如何在一个查询中从多个表中获取详细信息?

  14. 14

    在一个mysql查询中执行多个语句

  15. 15

    在一个调用中执行多个mysql查询

  16. 16

    如何从单个表中将 2 个查询组合到 sql 中的一个查询数据库?

  17. 17

    在一个查询中依靠同一表上的多个左联接

  18. 18

    如何将两个查询合并到一个子查询中

  19. 19

    PHP MYSQL如何在一个查询中链接来自多个表的数据元素

  20. 20

    如何在SQL语句中定义一个子查询作为表别名多次使用?

  21. 21

    如何使用一个SQL查询创建多个表

  22. 22

    如何在一个查询中从两个表中检索数据

  23. 23

    在 Opaleye 中,如何在同一个查询中插入两个表?

  24. 24

    如何在PHP代码中将两个表中的两个查询合并为一个查询?

  25. 25

    如何在DB2中将日期列表与另一个子查询联接

  26. 26

    如何在一个字段中执行年份范围的MySQL查询

  27. 27

    如何在Firebase中执行以下查询?(条件不止一个)

  28. 28

    如何查询另一个表中的上一条记录?

  29. 29

    如何在一个查询中更新来自不同表的两个记录?

热门标签

归档