Я попытался написать sql, используя подзапрос. Я достиг подсчета () моей таблицы, но, как мы знаем, подзапрос требует много ресурсов в дБ мощности, я хочу, чтобы мой счетчик () был равен в столбце показано, что в моей таблице 6 записей, и когда я вычислю количество (*) своей таблицы, она будет отображаться как:
6
6
6
6
6
6
Я хочу получить такую запись, как указано выше, без подзапроса.
WITH survey AS (
SELECT
*
FROM
(
SELECT
student_id,
performance,
teacher_behaviour,
syllabus,
shift_incharge_behaviour,
punctuality,
teaching_status,
voice_clarity_class,
daily_class,
exams_status,
mtm_helpline_status,
fee_dept_status,
personality_status,
madni_task_assessment,
survey_id
FROM
survey_feedback
WHERE
survey_id = 1
GROUP BY
student_id,
performance,
teacher_behaviour,
syllabus,
shift_incharge_behaviour,
punctuality,
teaching_status,
voice_clarity_class,
daily_class,
exams_status,
mtm_helpline_status,
fee_dept_status,
personality_status,
madni_task_assessment,
survey_id
) UNPIVOT ( star
FOR q
IN ( performance AS 'PERFORMANCE',
teacher_behaviour AS 'TEACHER_BEHAVIOUR',
syllabus AS 'SYLLABUS',
shift_incharge_behaviour AS 'SHIFT_INCHARGE_BEHAVIOUR',
punctuality AS 'PUNCTUALITY',
teaching_status AS 'TEACHING_STATUS',
voice_clarity_class AS 'VOICE_CLARITY_CLASS',
daily_class AS 'DAILY_CLASS',
exams_status AS 'EXAMS_STATUS',
mtm_helpline_status AS 'MTM_HELPLINE_STATUS',
fee_dept_status AS 'FEE_DEPT_STATUS',
personality_status AS 'PERSONALITY_STATUS',
madni_task_assessment AS 'MADNI_TASK_ASSESSMENT' ) )
ORDER BY
1,
2
)
SELECT
*
FROM
survey PIVOT (
COUNT ( student_id )
FOR star
IN ( 1, 2, 3, 4, 5 )
)
ORDER BY
q;
I want such desire Result as below is the picture.Total column is the sum of total records of my table
введите описание изображения здесь