Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сортировка в зависимости от количества

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Brothersssddsss
Отправлено: 06 Октября, 2010 - 13:23:33
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Здравствуйте!

Не могу разобраться с запросом...

Дело вот в чём нужно вывести адреса сайтов отсортированных по количеству их выбора.

Есть таблица "Таблица1":

| id_user | address |
---------------------
|__ 54 __| qwer.ru |
|__ 35 __| qwer.ru |
|__ 37 __| qtr.com |
|__ 39 __| qtr.com |
|__ 15 __| qrr.com |
|__ 11 __| adf.com |

`id_user` - это пользователь который выбрал этот сайт.
`address` - это сайт который выбрал пользователь.

Результат должен быть такой:

----------------------------
1. qtr.com (так как его выбрали 3 пользователя то он будет на первом месте)
----------------------------
2. qwer.ru
----------------------------
3. adf.com
----------------------------

Строк в таблице например с `address`='qtr.com' три но выводить нужно только одну (неважно какую из трёх).

(Отредактировано автором: 06 Октября, 2010 - 13:25:31)

 
 Top
EuGen Администратор
Отправлено: 06 Октября, 2010 - 13:27:50
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




SELECT address, COUNT(*) AS site_count FROM Таблица1 GROUP BY address ORDER BY site_count DESC
(по адресу сайта)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Ch_chov
Отправлено: 06 Октября, 2010 - 17:06:01
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT address FROM table_name t GROUP BY address ORDER BY (SELECT COUNT(*) FROM table_name WHERE t.address = address) DESC
 
 Top
Brothersssddsss
Отправлено: 06 Октября, 2010 - 18:08:35
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Спасибо
 
 Top
JustUserR
Отправлено: 07 Октября, 2010 - 00:07:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Brothersssddsss Для реализация получения сводной информации о состоянии сохраненных данных в текущей таблице возможно использовать специалиный рефлексивный запрос - в таком случае вы можете произвести явную выборку уникальных полей по некоторым критериями в левой части и осуществить объединения по количеству результатов с запросом правой части - кроме того при проведении дополнительного объединения запроса со списком последовательных уникальных идентификаторов возможно определить имеющиеся пробелы в нумерации


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB