Eu tenho uma mesa assim
create table CTE1 (
[CC Receiver] VARCHAR(10),
Name VARCHAR(255),
[Division] varchar(10),
[Old Block] varchar(10),
[Date] Date,
Round VARCHAR(10),
Platform VARCHAR(10),
block_type VARCHAR(255),
tph_type VARCHAR(255)
);
insert into CTE (
[CC Receiver],
Name,
[Division],
[Old Block],
[Date],
Round,
Platform,
block_type,
tph_type
)
values
('BNAB21A020', 'ESTATE TEPIAN LANGSAT', 'A', 'M28', '2024-01-09', '45', '013', 'Bukit', 'Collection Road'),
('BNAB21A020', 'ESTATE TEPIAN LANGSAT', 'A', 'M28', '2024-01-09', '45', '017', 'Bukit', 'Collection Road'),
('BNAB21A020', 'ESTATE TEPIAN LANGSAT', 'A', 'M28', '2024-01-09', '45', '010', 'Bukit', 'Collection Road'),
('BNAB21A020', 'ESTATE TEPIAN LANGSAT', 'A', 'M28', '2024-01-09', '45', '024', 'Bukit', 'Collection Road'),
('BNAB21A020', 'ESTATE TEPIAN LANGSAT', 'A', 'M28', '2024-01-09', '46', '013', 'Bukit', 'Collection Road'),
('BNAB21A020', 'ESTATE TEPIAN LANGSAT', 'A', 'M28', '2024-01-09', '46', '016', 'Bukit', 'Collection Road');
SELECT *
FROM CTE;
Receptor CC | Nome | Divisão | Bloco Antigo | Data | Redondo | Plataforma | tipo_de_bloco | tipo_tph |
---|---|---|---|---|---|---|---|---|
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 013 | Bukit | Estrada da Coleção |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 017 | Bukit | Estrada da Coleção |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 010 | Bukit | Estrada da Coleção |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 024 | Bukit | Estrada da Coleção |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 46 | 013 | Bukit | Estrada da Coleção |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 46 | 016 | Bukit | Estrada da Coleção |
O objetivo é fornecer row_number com base no mesmo [CC Receiver], YEAR(Data), Month(Data), Name, Division, Old Block e ordenar por Round.
com base na exigência, esta é minha consulta
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY YEAR(Date), MONTH(Date), [CC Receiver], Name, Division, [Old Block]
ORDER BY Round
) AS rotasi
FROM CTE;
e este é o resultado:
Receptor CC | Nome | Divisão | Bloco Antigo | Data | Redondo | Plataforma | tipo_de_bloco | tipo_tph | Rotas |
---|---|---|---|---|---|---|---|---|---|
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 013 | Bukit | Estrada da Coleção | 1 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 017 | Bukit | Estrada da Coleção | 2 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 010 | Bukit | Estrada da Coleção | 3 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 024 | Bukit | Estrada da Coleção | 4 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 46 | 013 | Bukit | Estrada da Coleção | 5 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 46 | 016 | Bukit | Estrada da Coleção | 6 |
Isso não atende às minhas necessidades, pois o código coloca a ordem com base no número da linha, incluindo a plataforma, e o que eu quero é excluir a plataforma.
Resultado esperado:
Receptor CC | Nome | Divisão | Bloco Antigo | Data | Redondo | Plataforma | tipo_de_bloco | tipo_tph | Rotas |
---|---|---|---|---|---|---|---|---|---|
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 013 | Bukit | Estrada da Coleção | 1 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 017 | Bukit | Estrada da Coleção | 1 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 010 | Bukit | Estrada da Coleção | 1 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 45 | 024 | Bukit | Estrada da Coleção | 1 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 46 | 013 | Bukit | Estrada da Coleção | 2 |
BNAB21A020 | PROPRIEDADE TEPIAN LANGSAT | UM | M28 | 2024-01-09 | 46 | 016 | Bukit | Estrada da Coleção | 2 |