|
|
|
запрос на выборку с разделением на года
|
|||
|---|---|---|---|
|
#18+
доброго времени суток, есть таблица с полями: id, id_student, date, flag_trud. date - дата, flag_trud - 0 или 1. Код: sql 1. 2. 3. 4. 5. 6. 7. содержит такие данные Код: sql 1. 2. 3. 4. 5. 6. 7. Пользователь задает два числа: начальный год и конечный год. Можно ли составить такой запрос, который бы вернул кол-во записей за каждый год с начального по конечный, у которых flag_trud=1, сгруппировав по id_student за каждый год? Т.е например начальный год = 2011, конечный = 2014. В итоге по нашей таблице, в ответ должен получить нечто такое: countyear02011120121201312014 пока могу придумать только так: Код: sql 1. но это вернет только общее кол-во записей за этот промежуток с flag_trud=1 и сгруппировав по id_student. А мне нужно совсем не то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 21:03:13 |
|
||
|
запрос на выборку с разделением на года
|
|||
|---|---|---|---|
|
#18+
хотя, вот так вроде почти то что надо получается Код: sql 1. только вот как быть с нулевым кол-вом за какой нибудь год... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 21:20:25 |
|
||
|
запрос на выборку с разделением на года
|
|||
|---|---|---|---|
|
#18+
marwellтолько вот как быть с нулевым кол-вом за какой нибудь год... Код: sql 1. 2. 3. 4. 5. 6. в таблицу years надо заранее (однажды и навсегда) забить все года в виде дат NNNN-01-01. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 05:19:50 |
|
||
|
запрос на выборку с разделением на года
|
|||
|---|---|---|---|
|
#18+
tanglirв таблицу years надо заранее (однажды и навсегда) забить все года в виде дат NNNN-01-01. В принципе, достаточно индексированной таблицы натуральных чисел, штук так до 10000 - на все случаи сойдет, и для дней года, и для перечня лет, да и для других запросов может вдруг неожиданно пригодиться :) А один cross join - и есть 10^8 записей для стресс-теста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 18:50:30 |
|
||
|
запрос на выборку с разделением на года
|
|||
|---|---|---|---|
|
#18+
tanglir, спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2014, 21:54:21 |
|
||
|
запрос на выборку с разделением на года
|
|||
|---|---|---|---|
|
#18+
Cygapb-007tanglirв таблицу years надо заранее (однажды и навсегда) забить все года в виде дат NNNN-01-01. В принципе, достаточно индексированной таблицы натуральных чисел, штук так до 10000 - на все случаи сойдет, и для дней года, и для перечня лет, да и для других запросов может вдруг неожиданно пригодиться :) А один cross join - и есть 10^8 записей для стресс-тестаМожно вообще сделать таблицу всех дат на +/- N лет от текущего момента с признаками начала/конца года/месяца. Этим можно сократить текст запросов за счёт неиспользования date_add :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2014, 09:51:39 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38592367&tid=1835091]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 291ms |

| 0 / 0 |
