Como juntar várias tabelas SQL e obter contagens de cada

Jacob C. Voller

Preciso de uma consulta T-SQL que possa juntar várias tabelas, mas também retornar contagens de cada uma. Sei fazer cada parte separadamente, mas não consigo fazer com que funcionem juntas.

Dado este esquema SQL:

CREATE TABLE [House] 
(
    [Id] INT IDENTITY (1, 1) NOT NULL,
    [Price] DECIMAL (5, 2) NOT NULL,
);

CREATE TABLE [Floor] 
(
    [Id] INT IDENTITY (1, 1) NOT NULL,
    [HouseId] INT NOT NULL,

    CONSTRAINT [FK_Floor_HouseId] 
        FOREIGN KEY ([HouseId]) REFERENCES [House] ([Id])
);

CREATE TABLE [Room] 
(
    [Id] INT IDENTITY (1, 1) NOT NULL,
    [FloorId] INT NOT NULL,
    [Type] VARCHAR,

    CONSTRAINT [FK_Room_FloorId] 
        FOREIGN KEY ([FloorId]) REFERENCES [Floor] ([Id])
);

Preciso de uma consulta SQL que retornará uma única lista com as seguintes informações, entendo que a consulta provavelmente será confusa.

  • [House]. [Id]
  • [Casa]. [Preço]
  • [FloorCount] - O número total de andares em cada casa
  • [RoomCount] - O número total de quartos em cada casa
  • [BedroomCount] - O número de cômodos da casa onde [Type] = 'Bedroom'
Jacob C. Voller

Pode haver uma maneira melhor, mas resolvi agrupando pelo ID da casa e usando apenas a função max para obter o preço. Existem várias linhas, todas com o mesmo preço, mas eu só precisava pegar uma delas.

SELECT [House].[Id],
       MAX([House].[Price]),
       COUNT(distinct [Floor].[Id]) AS [FloorCount],
       COUNT(distinct [Room].[Id]) as [TotalRoomCount],
       SUM(CASE WHEN [Type] = 'Bedroom' THEN 1 ELSE 0 END) AS [BedroomCount]
FROM [House]
LEFT JOIN [Floor] ON [Floor].[HouseId] = [House].[Id]
LEFT JOIN [Room] on [Room].[FloorId] = [Floor].[Id]
GROUP BY [House].[Id];

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como obter contagens diárias de duas tabelas no mysql?

SQL Server - como obter a atualização mais recente de cada grupo de várias tabelas

Como juntar e obter dados de duas tabelas no laravel?

Como juntar tabelas por várias colunas para cada id

Como selecionar uma linha específica da tabela SQL e juntar várias tabelas no servidor SQL?

Como selecionar e obter dados de várias tabelas (Laravel)

Como juntar várias tabelas SQL juntas de acordo com o cenário

Como juntar várias tabelas no banco de dados de salas

Laravel como juntar uma a várias tabelas de relacionamento

Como obter várias contagens com uma consulta SQL?

Como obter registros de várias tabelas?

Como juntar tabelas de IdentityDbContext e ApplicationDbContext

Como juntar tabelas no Sql?

Consulta SQL para obter contagens de duas tabelas com base em valores e nomes de campo

Como juntar tabelas com várias chaves

Como juntar várias tabelas queryDSL

Como juntar várias tabelas no mongodb

Como juntar tabelas com várias chaves

Como juntar duas tabelas e obter os dados

Como juntar duas tabelas e obter o seguinte resultado?

MySQL - Como juntar e obter dados dessas três tabelas?

como posso juntar essas tabelas e obter os resultados desejados

Como juntar e obter soma de três tabelas diferentes no codeigniter?

Como juntar tabelas no SQL Server de forma que junte cada linha uma vez

Flask SQL Alchemy juntar várias tabelas

Como juntar tabelas no SQL Server para obter o resultado esperado

Como juntar duas tabelas com SQL para obter nomes de atletas

Como juntar duas tabelas para exibir as vendas de cada id

Como juntar duas tabelas para exibir as vendas de cada id

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo