Мой текущий SQL:Как пронумеровать строки, с итогом в конце?
select s.dcid, substr(s.lastfirst,0,3), to_char(a.att_date, 'mm/dd/yyyy'), a.periodid, p.name, a.attendance_codeid, ac.att_code, count(*)
from students s
join attendance a on s.id = a.studentid
join period p on a.periodid = p.id
join attendance_code ac on a.attendance_codeid = ac.id
WHERE ac.att_code IS NOT NULL
AND s.schoolid = 109
AND s.enroll_status = 0
AND s.student_number = 100887
AND a.att_date >= to_date('08/15/2013', 'mm/dd/yyyy')
group by s.dcid, s.lastfirst, to_char(a.att_date, 'mm/dd/yyyy'), a.periodid, p.name, a.attendance_codeid, ac.att_code
Выход:
Я хотел бы получить выход для последовательного номер каждой записи, где отсчет (*) столбец, начиная с 1 на каждой новой группы, и поместите итог в нижней части группы, но я не уверен, как это сделать. Я пробовал свертывание в разных частях группы по выражению, но это заканчивается, давая промежуточные итоги для дат, периодов и т. Д. Мне нужно, чтобы он был ТОЛЬКО для ученика (либо s.dcid, либо s.lastfirst)
[Дополнительная информация по запросу ...]
Я надеюсь получить отчет, в котором мои конечные пользователи могут искать студентов, которые имеют заданное количество записей посещаемости в диапазоне дат. Например, если конечный пользователь хочет найти студентов, у которых есть 20 отсутствий между 10/1/2013 и 10/31/2013, где att_code является одним из A, C, E, G ... и т. Д. После запуска отчета , Я хочу показать им дату отсутствия, а код, который использовался как визуальная проверка, что найденные записи действительно соответствуют их критериям поиска.
Выход должен выглядеть как текущий вывод, за исключением столбца COUNT (*), в котором я сейчас завис. Мне нравится, как row_number последовательно записывает каждую запись, но то, что я все еще ищу, - это то, как сбрасывать последовательную нумерацию, когда изменяется группа (ученика).
Например ...
DCID S.LASTFIRST A.ATT_DATE PERIODID NAME ATT_CODE COUNT(or # or Num...)
1006 Aco 08/29/2013 1704 4 W 1
1006 Aco 09/03/2013 1701 1 6 2
1006 Aco 09/05/2013 1706 6 G 3
...
1006 Aco 10/04/2013 1706 6 z 20
2543 Bro 08/29/2013 1704 4 W 1
2543 Bro 09/03/2013 1701 1 6 2
2543 Bro 09/05/2013 1706 6 G 3
...
2543 Bro 10/04/2013 1706 6 z 20
3121 Com 08/29/2013 1704 4 W 1
3121 Com 09/03/2013 1701 1 6 2
3121 Com 09/05/2013 1706 6 G 3
...
3121 Com 10/04/2013 1706 6 z 20
Конечно, в этом примере, я сокращающий вывод, заменив номера строк 4 - 19 в каждой из трех групп с «...» Я не» я хочу, чтобы буквально выводить это.
Есть ли у вас пример нужного выхода? Какова структура ваших таблиц? Как вы определяете «группу»? ... и можете ли вы отправить [SQLFIDDLE] (http://sqlfiddle.com) несколько выборочных данных? – MT0