Atualização: reformulando a pergunta.
Abaixo estão os resultados e os resultados desejados. O que preciso fazer para obter os resultados desejados? Consulte http://sqlfiddle.com/#!2/d0e13c/69
obrigada
SELECT CONCAT('Greater than or equal to ',t.val2,':', count(*)) FROM
(
SELECT
CASE
WHEN val>=1000 THEN 1000
WHEN val>=500 THEN 500
WHEN val>=400 THEN 400
WHEN val>=300 THEN 300
WHEN val>=200 THEN 200
WHEN val>=100 THEN 100
WHEN val>=10 THEN 10
WHEN val>=5 THEN 5
WHEN val>=2 THEN 2
WHEN val>=1 THEN 1
END AS 'val2'
FROM e
) as t
GROUP BY t.val2
ORDER BY t.val2 DESC
Resultados:
Greater than or equal to 1000:1
Greater than or equal to 500:1
Greater than or equal to 400:2
Greater than or equal to 300:1
Greater than or equal to 200:2
Greater than or equal to 100:3
Greater than or equal to 10:1
Greater than or equal to 5:1
Greater than or equal to 1:2
Resultados desejados:
Greater than or equal to 1000:1
Greater than or equal to 500:2
Greater than or equal to 400:4
Greater than or equal to 300:5
Greater than or equal to 200:7
Greater than or equal to 100:10
Greater than or equal to 10:11
Greater than or equal to 5:12
Greater than or equal to 2:12
Greater than or equal to 1:14
É possível converter as
CASE
opções em linhas de uma tabela temporária, umaJOIN
com condição menor ou igual à tabela de dados obterá as linhas.Demonstração do SQLFiddle
Outra maneira nem precisa da tabela temporária, mas obterá os resultados como colunas em vez de linhas, se você se importar com os resultados e não com o formato
Demonstração do SQLFiddle
PERGUNTA PROPOSTA Nº 1
CARREGUE SEUS DADOS DE AMOSTRA
CONSULTA PROPOSTA Nº 1 EXECUTADA
PERGUNTA PROPOSTA Nº 2
CONSULTA PROPOSTA Nº 2 EXECUTADA
Observação: a consulta proposta nº 2 tem a saída desejada
DE UMA CHANCE !!!