|
|
|
| Доброго времени суток,
Как можно выбрать из таблицы каждую n-запись? ( вторую, ...15-ю.. итд).
Таблица:
кол-1,кол2,
1 0
2 0
3 0
4 0
1 1
2 1
3 1
4 1
К примеру - нужно выбрать каждую 2 запись из кол 1, группируя, по кол 2.. | |
|
|
|
|
|
|
|
для: Trackman
(19.06.2013 в 11:44)
| | Это учебная задача?
Тогда попробуйте сами проанализировать мой ответ в теме:
http://softtime.ru/forum/read.php?id_forum=3&id_theme=89748
Принцип тот же самый. | |
|
|
|
|
|
|
|
для: Sfinks
(19.06.2013 в 12:34)
| | Задача придумана самому себе, чтобы не грузить тот же php, а использовать mysql.
в Вашем ответе есть ИДы по которым можно что-то склеить. У меня же - одна таблица, и значения в ней сгруппированы только по 2-й колонке( в моём примере таблицы "кол 2 "- номер "группы", а "кол-1" значение).
Можно записать:
SELECT col1
FROM table
GROUP BY col2
|
и при этом получить то, что мне нужно, но только первые значения групп, а вот как достать остальные ( только n-й ряд в группе.) ? Была идея использовать переменные, но пока не ясно как. | |
|
|
|
|
|
|
|
для: Trackman
(19.06.2013 в 12:48)
| | > в Вашем ответе есть ИДы по которым можно что-то склеить
Не важно! Если вы поймете как оно работает, то сможете решить и свою задачу по тому же принципу.
> Была идея использовать переменные, но пока не ясно как.
Можно и с переменными. И даже так:
- Если строки могут дублироваться, т.е. может быть 2 полностью одинаковых строки, то только с переменными и решите. Первый вариант тогда не прокатит.
> Можно записать:
SELECT col1
FROM table
GROUP BY col2
| > и при этом получить то, что мне нужно, но только первые значения групп
А это вообще самая распространенная ошибка начинающих SQLщиков.
Любая адекватная СУБД на этот запрос выдаст ошибку.
Но не MySQL.
Она вам выдаст не первые значения групп, а одно любое, которое сочтет нужным. Можете в этом убедиться, если будуте выполнять этот запрос не на только что созданной таблице, а поудаляете из нее строки, потом подобавляете, пооптимизируете и т.д.... Т.е. если создадите условия, как будто таблица реально рабочая, то у вас результат выборки будет переодически меняться. А это не допустимо, если у вас конечно не стоит задачи съэмитировать RAND() | |
|
|
|