У меня есть таблица с именем td_cell_allocation, который имеет следующие данные:Как разместить заказ и группу по запросу mysql?
td_cell_allocation
|-------------|-----------|------------------------------------|---------------|
| first_name | last_name | user_email | cell_image | continent |
|--------------------------------------------------------------|----------------
| saswat | roy | [email protected] | a.jpg | america |
--------------------------------------------------------------------------------
| shuvra | pan | [email protected] | b.jpg | europe |
--------------------------------------------------------------------------------
td_cell_click
|-------------|-----------------|------------------|
| click_id | user_mail | date_of_click |
|--------------------------------------------------|
| 1 | [email protected] | 2013-06-2 |
----------------------------------------------------
| 2 | [email protected] | 2013-06-2 |
----------------------------------------------------
| 3 | [email protected] | 2013-06-3 |
----------------------------------------------------
| 4 | [email protected] | 2013-06-4 |
----------------------------------------------------
| 5 | [email protected] | 2013-06-5 |
----------------------------------------------------
| 6 | [email protected] | 2013-06-5 |
----------------------------------------------------
| 7 | [email protected] | 2013-06-5 |
----------------------------------------------------
| 8 | [email protected] | 2013-06-8 |
----------------------------------------------------
| 9 | [email protected] | 2013-06-8 |
----------------------------------------------------
теперь я хочу, чтобы отсортировать пользователи, имеющие наибольшее количество кликов на июнь месяц, сгруппированных по континентам
поэтому я написал запрос, как это:
SELECT first_name, last_name, count(click_id) AS tot_click, td_cell_allocation.continent
FROM td_cell_allocation, td_cell_click
WHERE td_cell_allocation.user_email = td_cell_click.user_mail
AND date_of_click LIKE '%-06-%'
GROUP BY td_cell_allocation.continent
ORDER BY tot_click DESC
Это возвращает меня это:
shuvra pan 2 europe
shuvra pan 2 europe
saswat roy 3 america
затем я изменил мой запрос
SELECT *
FROM (
SELECT first_name, count(click_id) AS tot_click, td_cell_allocation.continent
FROM td_cell_allocation, td_cell_click
WHERE td_cell_allocation.user_email = td_cell_click.user_mail
ORDER BY tot_click, timestamp DESC
) AS inv
GROUP BY inv.continent
вернулся
saswat 7 america
Пожалуйста, может кто-нибудь помочь мне в этом деле
Я хочу, чтобы мой результат будет так:
saswat roy 5 america
shuvra pan 4 europe
Хотя есть некоторые возможности для улучшения ваш первый запрос работает просто отлично http://sqlfiddle.com/#!2/64429/5 – peterm