Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2017, 08:14   #1
Екатерина Попкова
Пользователь
 
Регистрация: 15.03.2014
Сообщений: 34
Печаль SQL запрос

Добрый день,начинаю изучать SQL,подскажите,пожалуйста:
Имеется таблица для хранения информации о посещениях страниц пользователями:

CREATE TABLE `page_visit` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`page` varchar(200) NOT NULL,
`date` datetime DEFAULT NULL,
PRIMARY KEY (`id`)

Необходимо вывести:
a. последних 10 пользователей, посетивших страницу «/about/»
b. всех пользователей, посетивших страницу «/about/», с указанием следующих данных:
-ID пользователя
-Количество посещений страницы
-Время первого посещения страницы
-Время последнего посещения страницы



а.последних 10 пользователей, посетивших страницу «/about/»:
SELECT*FROM page_visit ORDER idDESC 10. Верно?
на счет b затрудняюсь написать..(
Екатерина Попкова вне форума Ответить с цитированием
Старый 26.01.2017, 09:13   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

нет не верно. Изучаете плохо, почитайте еще раз матчасть....
А задания похожи больше на учебные, потому все же лучше сделать их самой
ADSoft вне форума Ответить с цитированием
Старый 27.01.2017, 10:21   #3
Екатерина Попкова
Пользователь
 
Регистрация: 15.03.2014
Сообщений: 34
По умолчанию SQL запрос

a. последних 10 пользователей, посетивших страницу «/about/»
SELECT page FROM page_visit LIMIT 10; Верно?

Плохо поминаю эту строчку `id` int(11) ....
`id` int(11)-здесь должно быть какое то название столбца,типа:user_id` int(11). `id` int(11)-какое наименование таблицы?
Екатерина Попкова вне форума Ответить с цитированием
Старый 27.01.2017, 10:41   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

id и есть название колонки

Код:
SELECT `user_id` FROM `page_visit` WHERE `page`='/about/' ORDER BY `date` desc LIMIT 10
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.01.2017, 11:23   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
a. последних 10 пользователей, посетивших страницу «/about/»
Цитата:
Сообщение от Аватар Посмотреть сообщение
SELECT `user_id` FROM `page_visit` WHERE `page`='/about/' ORDER BY `date` desc LIMIT 10
а если один и тот же пользователь 10 раз посетил страницу - это один посетитель или 10 посетителей?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.01.2017, 11:37   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Угу, не подумал )) Если для разных, тогда группировку добавить еще
Код:
SELECT `user_id`
  FROM `page_visit`
  WHERE `page`='/about/'
  GROUP BY `user_id`
  ORDER BY MAX(`date`) DESC
  LIMIT 10
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.01.2017, 11:44   #7
Екатерина Попкова
Пользователь
 
Регистрация: 15.03.2014
Сообщений: 34
По умолчанию

подскажите,а где в программе отображается последние 10 пользователей? а если к примеру первые 10 пользователей?
ORDER BY MIN (`date`) DESC
LIMIT 10
Екатерина Попкова вне форума Ответить с цитированием
Старый 27.01.2017, 11:52   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Если для разных, тогда группировку добавить еще
угу. согласен. красиво.


Цитата:
Сообщение от Екатерина Попкова Посмотреть сообщение
подскажите,а где в программе отображается последние 10 пользователей? а если к примеру первые 10 пользователей?
простите, не понял Вашего вопроса.
выше запрос от Аватар показывает последних 10 посетителей страницы.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.01.2017, 11:56   #9
Екатерина Попкова
Пользователь
 
Регистрация: 15.03.2014
Сообщений: 34
По умолчанию

а если необходимо вывести 10 первых пользователей,тогда :

SELECT `user_id`
FROM `page_visit`
WHERE `page`='/about/'
GROUP BY `user_id`
ORDER BY MIN (`date`) DESC
LIMIT 10

Верно?
Екатерина Попкова вне форума Ответить с цитированием
Старый 27.01.2017, 12:11   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

И desc убрать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос в sql 2005 - SQL Server a.n.o.n.i.m SQL, базы данных 8 31.03.2016 17:01
Написать скрипт, который выгрузит данные из файла в формате JSON, создаст SQL таблицу и написать SQL запрос Mangum Фриланс 3 11.03.2016 05:21
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15