2010-10-23 1 views
1

У меня есть таблица с «клиентами» столбцов и «местом», и мне нужно проверить 10 лучших мест, которые посещают уникальные клиенты.Замените mysql-> php-> mysql с вложенным запросом

Я готов сделать следующее:

  1. Выберите пункт Размещение MYTABLE GROUP BY место
  2. результаты нагрузки на массив (может быть сотни нескольких сотен мест)
  3. SELECT COUNT (*) AS total, tbl.location AS LOCATION FROM (SELECT DISTINCT клиент FROM myTable WHERE location = location_inserted_by_php) как tbl;

Теперь это звучит как довольно глупое решение, но я довольно не знаком с вложенными запросами. Любая помощь?

Благодаря

+0

Итак, вы хотите, чтобы объединить запросы, чтобы получить места посещаемые Customer A позволяет сказать, а затем получить 10 лучших мест, которые они посетили ? Вы можете сначала запросить эту информацию, а затем проанализировать и посчитать ее позже. Я всегда нашел COUNT довольно медленно, поэтому я пытаюсь его использовать. – Matt

+0

Я хотел сделать 10 посещаемых мест, но только для подсчета посещений от уникальных посетителей. Итак, если клиент А, которого вы упомянули, посещает это место 1000 раз, это все еще только 1 посещение. – hummingBird

ответ

2
SELECT location,count(distinct customer) as visitors from customer_locations 
GROUP BY location 
ORDER BY visitors DESC 
LIMIT 10 

получает первые 10 мест по количеству уникальных посетителей

+0

Спасибо. не знал, что я могу ввести отдельного клиента внутри подсчета: (Теперь мне нужен хороший (и довольно полный) учебник для mysql, очевидно. – hummingBird

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

  • Нет связанных вопросов^_^