Categoria Segmento
1 Atendimento
1 Tempo de espera pela peça
1 Preço
2 Atendimento
2 Negociação
2 Tempo de entrega do veículo
3 Atendimento
3 Preço
3 Serviço
I have a table where I saved some data in that order above. If it is category 1, save those segments in that order.
I am showing this data on another page, however the data is not coming in the same order as it is saved in the table. Follow SELECT
.
select
segmento,
categoria,
round(avg(dealer_rating_categories.rating)) as media
from
'dealer_ratings'
inner join
'dealer_rating_categories' on 'dealer_rating_categories'.'id_avaliacao' = 'dealer_ratings'.'id'
inner join
'categories' on 'categories'.'id' = 'dealer_rating_categories'.'id_categoria'
where
'dealer_ratings'.'deleted_at' is null
and
'dealer_ratings'.'id_concessionaria' = 1
and
'dealer_ratings'.'id_concessionaria' is not null
and
'dealer_rating_categories'.'id_categoria' in (1, 2, 3)
group by
'dealer_rating_categories'.'id_categoria', 'segmento'
order by
'categories'.'ordem'
Result
Categoria Segmento
Compra de Veículo Atendimento
Compra de Veículo Negociação
Compra de Veículo Tempo de entrega do veículo
Serviço Preço
Serviço Serviço
Serviço Atendimento
Peças Preço
Peças Atendimento
Peças Tempo de espera pela peça
The only thing that is correct is the Vehicle Purchase category that is ID 2. The others, the segment comes out of order.
Just detailing:
I do not have the segmented segments separately in another table linking with the category table. I manually enter the code. Otherwise, I'd create a ORDEM
column in this table and add ORDER BY ORDEM
to SELECT
and solve the problem.
But since this is not the case, what can I do?