Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá estou com uma situação simples porem o select nao funciona como esperado...
//o comando
SELECT
count(cidade) as total, cidade
FROM
lancamentos
GROUP BY
cidade
order by total DESC, cidade ASC
gostaria que a ordem ficasse assim "sei que não funciona mas so para dar a idéia"
SELECT
count(cidade) as total, cidade
FROM
lancamentos
GROUP BY
cidade
IF (total > 40, total DESC, cidade ASC)
///valeu marco
Olá Andrey, sei que não da certo, foi mais para exibir a logica.
agora se preciso dele! é extremamente necessário pois a cidade de maior interesse em ordem alfabetica fica em baixo de todas
obrigado pela resposta
marco
Faz assim ..
SELECT count(cidade) as total, cidade FROM lancamentos ORDER BY total DESC, cidade ASC GROUP BY cidade
tenta o CASE
order by (case when total > 40 then total else 0 end) DESC, cidade ASC
mota a idéia é perfeita so que agora deu um erro muito estranho:
Unknown column 'total' in 'order clause'
que eu saiba e tenho usado,,,, pode usar alias no order by... so que deu esse erro..
abraços
marco
>
tenta o CASE
order by (case when total > 40 then total else 0 end) DESC, cidade ASC
order by (case when count(cidade) > 40 then count(cidade) else 0 end) DESC, cidade ASC
tentei também exatamente isso... e apareceu o seguinte erro:
Invalid use of group function
Marco
select total,cidade
from
(
SELECT count(cidade) as total, cidade
FROM lancamentos
group by cidade
)
order by (case when total > 40 then total else 0 end) DESC, cidade ASC
agora sim funcionow...
eu havia feito um having union havia funcinado, mas o seu ficou mais inteligente..
abraços
marco
Interessante, não sabia que dava pra usar case / when dessa forma.
Creio que não vá dar certo com este if aí não, realmente precisa dele ?