Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como é melhor juntar algumas tabelas (incluindo subconsultas) em uma consulta?


Eu acredito que isso te dá o que você está procurando (uma das muitas maneiras):
SELECT t.diapason, COUNT(*) AS 'number_of_users'
FROM (SELECT CASE  
    when amount<100 then '0-100' 
    when amount>=100 then '100 +' END AS diapason
    FROM 
        (SELECT SUM(amount) AS amount 
        FROM payments 
        INNER JOIN (SELECT DISTINCT user_id FROM activity where login_time between '2012-04-05' and '2012-04-12') AS a ON payments.user_id = a.user_id
        GROUP BY payments.user_id) AS P
      ) t
GROUP BY t.diapason
  ORDER BY number_of_users desc
;