SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 01.10.2013 21:00:13

nomn
Участник
Зарегистрирован: 01.10.2013
Сообщений: 3

Выборка из 1 таблицы

Доброго времени суток!
Пожалуйста, помогите составить запрос.

Таблица: id, firm_id, cost, date, growth

id - просто порядковый номер строки
firm_id - от 1 до 10 указывает на фирму
cost - стоимость акций
date - дата изменения
growth - прирост относительно предыдущего значения (может быть отрицательным)

Как должен выглядеть запрос, если мне нужно получить по 10 значений для каждого firm_id?
Большое спасибо!!

Неактивен

 

#2 01.10.2013 21:29:05

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Выборка из 1 таблицы

1. по какому признаку выбираются 10 значений для каждого firm_id?
2.Одним запросом лучше не делать (см до конца http://sqlinfo.ru/forum/viewtopic.php?id=1742 )


SELECT DISTINCT firm_id FROM `table_name`; -- вернет список уникальных firm_id
потом в цикле для каждого firm_id
SELECT id, firm_id, cost, `date`, growth FROM `table_name` WHERE firm_id=.. ORDER BY `date` DESC LIMIT 10; -- 10 последних по дате изменения

Неактивен

 

#3 01.10.2013 21:38:43

nomn
Участник
Зарегистрирован: 01.10.2013
Сообщений: 3

Re: Выборка из 1 таблицы

vasya написал:

1. по какому признаку выбираются 10 значений для каждого firm_id?
2.Одним запросом лучше не делать (см до конца http://sqlinfo.ru/forum/viewtopic.php?id=1742 )


SELECT DISTINCT firm_id FROM `table_name`; -- вернет список уникальных firm_id
потом в цикле для каждого firm_id
SELECT id, firm_id, cost, `date`, growth FROM `table_name` WHERE firm_id=.. ORDER BY `date` DESC LIMIT 10; -- 10 последних по дате изменения

Большое спасибо за ответ! Вы совершенно верно решили - выборка будет именно по дате, 10 последних от самой свежей даты.
Получать ID не нужно, т.к. они просто от 1 до 10 - заранее известны.

Получается самое грамотное решение - это цикл от 1 до 10, и в сумме мы будем иметь 10 запросов? sad

p.s. пошел читать статью

Отредактированно nomn (01.10.2013 21:39:18)

Неактивен

 

#4 01.10.2013 22:47:48

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка из 1 таблицы

Скорее всего самое грамотное - циклом. Ну или Вы можете инкапсулировать этот код, написав mysql-функцию, в которой будет этот цикл.
Обратите внимание на запрос, который здесь
Не оптимально, но без цикла.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 02.10.2013 00:05:31

nomn
Участник
Зарегистрирован: 01.10.2013
Сообщений: 3

Re: Выборка из 1 таблицы

Большое спасибо!! Задачу решил

Неактивен

 

#6 02.10.2013 00:07:27

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Выборка из 1 таблицы

Поделитесь, как именно? Вопрос такой часто поднимается насчет подгрупп в группах.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson