Проблема в Группе по запросу

todo : Я сгруппировал набор данных по c_id и взял данные для максимального значения высоты каждой группы. Проблема : Данные, которые не отображают максимальное значение правильно, например, c_id = 3 на рисунке 2. Проблема в Группе по запросуПроблема в Группе по запросу

Хочу спросить как исправить, спасибо.

Если производительность важна, рассмотрите решение по следующим направлениям: sqlfiddle.com/#!9/096589/1 Обратите внимание на индекс на c_id, height - и в следующий раз см .: Почему я должен предоставлять MCVE для того, что мне кажется очень простым запросом SQL?

Strawberry 30.07.2018 13:03
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
38
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете проверить этот запрос:

SELECT `id`, `name`, `gender`, `age`, `c_id`, MAX(`height`) AS height 
FROM `student` 
GROUP BY `c_id` 
ORDER BY `height` DESC;

Вот Демо

Большое спасибо за Вашу помощь.

D.Todd 30.07.2018 12:54

Значения, возвращаемые для идентификатора, имени, пола и возраста в этом запросе, являются неопределенными. Они могут быть правильными, но только по счастливой случайности. В руководстве это довольно подробно рассматривается.

Strawberry 30.07.2018 13:10

Попробуй это

Select id, name, gender, age, c_id, height
From student
Where (c_id, age) in (Select c_id, max(age) from student group by c_id)
Order by height desc

Большое спасибо за Вашу помощь.

D.Todd 30.07.2018 12:54

Насколько я помню, подобное решение не может использовать index.

Strawberry 30.07.2018 12:59

Кроме того, какое значение имеет максимальный (возраст)!?!

Strawberry 30.07.2018 13:05

@Strawberry не будет использовать индекс?

Gaj 30.07.2018 13:15

@ Strawberry, надеюсь, вы полностью прочитали вопрос. он хочет максимальный возраст ученика под каждым c_id с их данными

Gaj 30.07.2018 13:17

Собственно, так и будет. Я исправлюсь,

Strawberry 30.07.2018 13:19

Прочитал вопрос.

Strawberry 30.07.2018 13:20

В таблице 6 строк, но в ожидаемом выходе только 4 строки. Им нужен максимальный возраст в каждом c_id.

Gaj 30.07.2018 13:25

На самом деле ОП не дала желаемого результата.

Strawberry 30.07.2018 13:47
Ответ принят как подходящий
select * 
  from student
 where (c_id, age,height) in ( Select c_id
                                    , max(age) age
                                    , max(height) as height 
                                 from student 
                                group 
                                   by c_id )

Большое спасибо за Вашу помощь.

D.Todd 30.07.2018 12:54

@ D.Todd, если это поможет, продолжайте голосовать и примите ответ для ТАК признательности

Zaynul Abadin Tuhin 30.07.2018 12:55

конечно ~~~~~~

D.Todd 30.07.2018 12:57

@Strawberry серьезно ????

Zaynul Abadin Tuhin 30.07.2018 13:23

@Strawberry sqlfiddle.com/#!9/aaf88f/2 эта ссылка только для вас, приятель, и вы снова проголосовали против, мне очень нравится ваш голос против: P

Zaynul Abadin Tuhin 30.07.2018 13:23

@ Strawberry, я счел данные его выборки не твоими

Zaynul Abadin Tuhin 30.07.2018 13:31

@ Strawberry, я не знаю мысли ОП, я вижу, чей возраст больше его роста, а также больше, тогда почему бы мне не подумать об этом, можете ли вы объяснить это

Zaynul Abadin Tuhin 30.07.2018 13:34

Хорошо, но кажется, что это решение все еще бессмысленно. Что значит вернуть и максимальный рост, и максимальный возраст? К тому же в вопросе нет ссылки на возраст.

Strawberry 30.07.2018 13:44

Другие вопросы по теме