Есть 2 таблицы (subj, rait) Необходимо вывести медиальное значение по предметам, то есть id_предмета, имя предмета, медиальное значение по данному предмету.
Как вывести медиальное по предметам без имени предмета - я понял, а вот как туда впихнуть и имя предмета - хоть убейте не понимаю.
SELECT `subject_id`,(MAX(`value`)+MIN(`value`))/2 FROM
(SELECT cs.`subject_id`,`value`
FROM
(SELECT subject_id,value, (
SELECT COUNT(1) FROM rating WHERE `value`<o.`value` AND `subject_id`=o.`subject_id`
) as ls
, (
SELECT COUNT(1) FROM rating WHERE `value`<=o.`value` AND `subject_id`=o.`subject_id`
) as lse
FROM rating o
) cs JOIN
(SELECT `subject_id`,COUNT(1)*.5 as cn
FROM rating
GROUP BY `subject_id`
) cc ON cs.`subject_id`=cc.`subject_id`
WHERE cn between ls and lse
) AS medians
GROUP BY `subject_id`
Если у вас выводит subj_id
в результирующем запросе, то его надо просто сджойнить с таблицей названий.
select subj.id, subj.name, T1.val from (
SELECT `subject_id`,(MAX(`value`)+MIN(`value`))/2 as val FROM ...
) as T1
LEFT JOIN subj ON subj.id=T1.subj_id
Немного поломав голову (всё оказалось гораздо проще - нужен был перекур и чайная пауза) - было допилено до следующего варианта, который отдает всё в нужном виде:
SELECT subject_id, name, (MAX(`value`)+MIN(`value`))/2 FROM
(
SELECT cs.`subject_id`,cs.`name`,`value`
FROM
(SELECT o.subject_id, subject.name, o.value, (
SELECT COUNT(1) FROM rating WHERE `value`<o.`value` AND `subject_id`=o.`subject_id`
) as ls
, (
SELECT COUNT(1) FROM rating WHERE `value`<=o.`value` AND `subject_id`=o.`subject_id`
) as lse
FROM rating o, subject
) cs JOIN
(SELECT `subject_id`,COUNT(1)*.5 as cn
FROM rating
GROUP BY `subject_id`
) cc ON cs.`subject_id`=cc.`subject_id`
WHERE cn between ls and lse
) as finaldata
GROUP BY subject_id
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Подскажите, как разместить текст поверх изображения, чтобы было как на картинке?
Подскажите, как сверстать такую белую адаптивную маскуПробовал через svg и border, но там возникают проблемы с %
Можно ли в html сделать так, чтобы текст отобразился в ячейке таблички так же как на рисунке?