Como alguém faz referência ao campo atualmente agrupado por em uma subconsulta?
Considere uma tabela com os seguintes dados:
Client Status Size
1 A 500
1 B 1500
2 A 2000
2 B 800
Estou tentando obter os seguintes dados em uma única consulta:
Client A B
1 500 1500
2 2000 800
Eu tenho jogado com variações disso, sem absolutamente nenhum sucesso:
SELECT
t.Client,
(
SELECT A FROM table WHERE Client=t.Client
) as A,
(
SELECT B FROM table WHERE Client=t.Client
) as B
FROM table t
GROUP BY t.Client;
O status de cada Cliente não é repetido , ou seja, cada cliente deve ter apenas uma linha com um determinado status. Para o propósito desta questão, podemos assumir que há exatamente uma entrada para cada status.
Observe que são cerca de cem mil linhas: cerca de 20 mil Clientes e cinco status por cliente. Existem outros campos também (como data de atualização de status e o usuário que realizou a atualização), portanto, alterar o esquema da tabela para simplesmente Client, A, B
não é viável.
Como posso referenciar o campo agrupado nas subconsultas?
Isso funciona, pode haver algo mais elegante:
Ai está: