2016-02-12 3 views
1

У меня есть следующий запрос MySQLMysql запросов Группировка Выпуск

SELECT t2.country,t1.deposits 

    FROM(
    SELECT Online_customer_activity_v2.Customers AS Player, 
    sum(Real_Money) as Deposits 
    FROM Online_customer_activity_v2 
    group by Customers 
    ) t1 

    INNER JOIN 

    (
     SELECT username as Player, 
     `players`.`country` as country 
     FROM `players` 
    ) t2 
    ON t1.`Player` = t2.`Player` 

    ORDER BY t1.Deposits DESC 

результат:

+-------------------------+----------+ 
| country     | deposits | 
+-------------------------+----------+ 
| Saudi Arabia   | 773410 | 
| Saudi Arabia   | 269845 | 
| Kuwait     | 132065 | 
| Kuwait     | 130245 | 
| Saudi Arabia   | 114006 | 
| Kuwait     | 110920 | 
| Kuwait     | 98755 | 
| Kuwait     | 86180 | 
| Kuwait     | 86005 | 
| Kuwait     | 84545 | 
| Saudi Arabia   | 71485 | 
| Kuwait     | 69247 | 
| Saudi Arabia   | 65300 | 
| Kuwait     | 65000 | 
| United Arab Emirates | 63795 | 
| Kuwait     | 59935 | 

Теперь, когда я пытаюсь группы по t2.country, чтобы получить мой запрос суммированы по стране,

SELECT t2.country,t1.deposits 
    FROM(
    SELECT Online_customer_activity_v2.Customers AS Player, 
    sum(Real_Money) as Deposits 
    FROM Online_customer_activity_v2 
    group by Customers 
    ) t1 
    INNER JOIN 
    (
     SELECT username as Player, 
     `players`.`country` as country 
     FROM `players` 
    ) t2 
    ON t1.`Player` = t2.`Player` 
    GROUP BY t2.country 
    ORDER BY t1.Deposits DESC 

я получаю следующее:

+-------------------------+----------+ 
| country     | deposits | 
+-------------------------+----------+ 
| Saudi Arabia   | 65300 | 
| Bahrain     | 6850  | 
| Egypt     | 700  | 

Он в принципе не подводит итог от клиента правильно ... Что я делаю неправильно и как исправить этот запрос, чтобы он работал? Спасибо!

+0

whats ваше требование? вы пытаетесь рассчитать общие депозиты по странам? –

+0

Исправить. Депозиты Сумма по странам –

+0

Используйте функцию Sum() в качестве заданного ответа от @praveen –

ответ

3

Если вы хотите получить sum(t1.deposits) на основе t2.countrysumaggregate функция нравится;

SELECT t2.country, sum(t1.deposits) deposits 
FROM(
    SELECT Customers AS Player, 
    sum(Real_Money) as Deposits 
    FROM Online_customer_activity_v2 
    group by Customers 
) t1 
JOIN `players` t2 
ON t1.`Player` = t2.`username` 
GROUP BY t2.country 
ORDER BY Sum(t1.Deposits) DESC 
+0

Спасибо за ваши быстрые предложения! отличная работа, как обычно, в stackoverflow! –

Смежные вопросы