Задать вопрос
@aaaviator
Пилот, по совместительству программист самоучка :)

Как написать запрос?

Как написать запрос MYSQL в Codeigniter - SELECT ... FROM (SELECT .... ) GROUP BY?
SELECT инструктор, дата, SUM(длительность)
FROM ( SELECT DISTINCT инструктор, дата, начало, длительность
       FROM таблица ) AS алиас
GROUP BY 1, 2
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Средний 3 комментария
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Я не знаю мне вот чего-то так режет глаза этот distinct.

SELECT инструктор, дата, SUM(длительность)
FROM ( SELECT DISTINCT инструктор, дата, начало, длительность
       FROM таблица ) AS алиас
GROUP BY 1, 2


Я рассуждаю так. Дата-начало-длительность - это величины. Их нельзя унифицировать. Инструкторы - можно. Но не в комбинации с измерениями. Если у вас данные - грязные - то почистите их и добавте unique. Просто гонять каждый раз унификацию - это как фильтровать фильтрованную воду. Дурная работа вобщемто.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Предположу, что в ORM нет возможностей для написания второго уровня вложенности подзапросов.
Вероятно, ответ будет таков:
$this->db->select('инструктор, дата, SUM(длительность)');
$this->db->from('( SELECT DISTINCT инструктор, дата, начало, длительность
                                FROM таблица ) AS алиас');
$this->db->group_by(['инструктор', 'дата']);
$query = $this->db->get();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы