SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 13.09.2010 20:48:56

asprod
Участник
Зарегистрирован: 13.09.2010
Сообщений: 2

Количество Одинаковых Записей

Здравствуйте. Есть база данных (хит-парад):

id |  name |      date      | pos
1  | song1 | 22.08.2010  |  1
1  | song1 | 29.08.2010  |  2
1  | song1 | 05.09.2010  |  3
2  | song2 | 22.08.2010  |  2
2  | song2 | 29.08.2010  |  3
2  | song2 | 05.09.2010  |  1
3  | song3 | 22.08.2010  |  3
3  | song3 | 29.08.2010  |  1
4  | song4 | 05.09.2010  |  2

на сайте будет таблица, показывающая результаты от 5 сентября, которая будет сортироваться по pos, в котором впервые появляется song4 и исчезает song3:

pos | name | предыдущая позиция| лучшая позиция| количество недель
1     song2 |  pos от 29.08.2010    |           X          |            Y
2     song4 |  pos от 29.08.2010    |           X          |            Y
3     song1 |  pos от 29.08.2010    |           X          |            Y

x - минимальное значение для всех записей name в поле pos (минимальное значение в поле pos для каждой песни).
y - количество каждой из записей в поле name (song1, song2, song4). то есть на сайте должно быть 3,3 и 1.
pos от 29.08.2010 для song4 ничего не покажет, т.к. song4 не имеет значения даты 29.08.2010.

В связи с этим три вопроса:

1) как сделать столбец с лучшей позицией (минимальное значение поля pos для каждой name)?
2) как сделать столбец с количеством недель (количество одинаковых записей в поле name)?
3) как сделать столбец с предыдущей позицией (значение pos для name от даты 29.08.2010)? и если позиции от 29.08.2010 нет, то как сделать так, чтобы было написано N?

помогите, пожалуйста, уже много сайтов излазил и разных статей прочитал, но ничего не получается.

Неактивен

 

#2 13.09.2010 21:15:38

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Количество Одинаковых Записей

В любом случае прийдется делать подзапросами.

1. SELECT MIN(pos) FROM tablename WHERE name = 'song1';
2. SELECT COUNT(*) FROM tablename WHERE name = 'song1' AND pos = 1;
3. SELECT pos FROM tablename WHERE name = 'song1' AND date = '2010-08-29';
Если данных нет — то нарисуйте там фигу smile

Неактивен

 

#3 13.09.2010 21:18:39

asprod
Участник
Зарегистрирован: 13.09.2010
Сообщений: 2

Re: Количество Одинаковых Записей

а вот это уже хуже sad

Но мой друг-программист говорит, что так сделать можно, но как именно, он не знает, потому что с MySQL не работал. как создавать базы данных, знает, а вот с кодами, как и у меня, проблема!

Отредактированно asprod (13.09.2010 21:22:30)

Неактивен

 

Board footer

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