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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2016, 09:48   #1
Zurav
Новичок
Джуниор
 
Регистрация: 20.02.2016
Сообщений: 3
По умолчанию Выбрать все строки с разными значениями столбца (MySQL)

День добрый.

Есть таблица:

id name time
1 some_name 2013-04-09 15:00:00.000
1 some_name 2013-04-09 15:01:00.000
1 some_name 2013-04-10 15:01:00.000
2 some_name 2013-04-09 15:00:00.000
2 some_name 2013-04-09 16:50:25.000
2 some_name 2013-04-10 15:01:00.000
3 some_name 2013-04-09 15:50:25.000
3 some_name 2013-04-09 16:50:25.000
3 some_name 2013-04-09 17:50:25.000
4 some_name 2013-04-09 15:59:59.000

Нужно выбрать по одной строке (любой) за каждый час с 2012 по 2015 год.
За час, это например с 12:00 по 12:59:59, миллисекунды можно не учитывать.
Поле time типа DATETIME

Результат такой:

1 some_name 2013-04-09 15:00:00.000
2 some_name 2013-04-09 16:50:25.000
3 some_name 2013-04-09 17:50:25.000
1 some_name 2013-04-10 15:01:00.000

или например такой:
4 some_name 2013-04-09 15:59:59.000
2 some_name 2013-04-09 16:50:25.000
3 some_name 2013-04-09 17:50:25.000
1 some_name 2013-04-10 15:01:00.000

Последний раз редактировалось Zurav; 20.02.2016 в 09:55.
Zurav вне форума Ответить с цитированием
Старый 20.02.2016, 10:02   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Найди способ как в дате забить нулями минуты и секунды, потом GROUP BY по этому вычисленному полю, а в перечне SELECT мускул допускает поля без агрегатных функций
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.02.2016, 10:50   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте такой запрос:
Код:
SELECT * FROM `testdate` group by DATE_FORMAT(`time`, '%Y%m%d%H')
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2016, 10:59   #4
Zurav
Новичок
Джуниор
 
Регистрация: 20.02.2016
Сообщений: 3
По умолчанию

Спасибо, отлично работает.
Zurav вне форума Ответить с цитированием
Старый 20.02.2016, 11:09   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да не за что! рад был помочь!

Ремарка в тему.
я вообще крайне настороженно отношусь в запросам (и СУБД, которое это позволяют!), которые выбирают столбцы, не указанные в агрегатной функции.
поймите, что Вы этим запросом говорите, что если несколько строк таблицы попадают в одну группу(агрегацию), то Вам ВСЁ равно, какие данные из этой группы получить!

поясню.
если будут такие данные
1 some_name 2013-04-09 15:00:00.000
2 other_name 2013-04-09 15:01:00.000
1 Vasya 2013-04-09 15:00:01.000

то Вам всё равно, будет ID 1 или 2 и name будет some_name или other_name или Vasya

впрочем, Вам, как программисту, самому решать - важно Вам это или нет!

Последний раз редактировалось Serge_Bliznykov; 20.02.2016 в 11:11.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2016, 12:23   #6
Zurav
Новичок
Джуниор
 
Регистрация: 20.02.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
то Вам всё равно, будет ID 1 или 2 и name будет some_name или other_name или Vasya
Разумеется, именно это "все равно" я и отразил в условиях задачи.
Как раз мой случай, когда важно наличие, а не содержание.
Zurav вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос с разными значениями. phenne SQL, базы данных 2 26.01.2016 19:30
Как посчитать количество ячеек с разными текстовыми значениями biva Microsoft Office Excel 8 30.06.2015 15:00
Выбрать все числа из строки Jene4ka Общие вопросы Delphi 7 17.03.2011 07:13
MySQL выбрать все сообщения после моего ADSoft SQL, базы данных 3 11.03.2011 13:28
создание массива real рандомно с 2-мя разными значениями после запятой dima-intro Помощь студентам 6 15.12.2010 20:15