Как получить Min() или Max() в drupal с помощью представлений?

Я использую Drupal Views 2, и мне нужно получить минимальные значения из полей в пользовательской таблице. Запрос для этого был бы простым, если бы я писал его вручную — что-то вроде «SELECT foo, min(bar) FROM table GROUP BY foo». Но как мне это сделать с помощью представлений? Я уже определил таблицу в файле views.info, поэтому нет проблем с получением представлений для просмотра таблицы. Это часть запроса Min(), которую я просто не понимаю.

Следующей моей остановкой будет документация по Views API, но если кто-то может просто предоставить схему того, как это сделать быстро, я был бы очень признателен.


person Community    schedule 26.02.2010    source источник


Ответы (3)


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

class views_handler_custom_field extends views_handler_field {

  function query() {
    $this->ensure_my_table();
    $this->field_alias = $this->query->add_field("MAX({$this->table_alias}", "{$this->real_field})",$this->table_alias . "_" . $this->real_field);
  }
}
person mpaler    schedule 12.06.2014

  1. Используйте агрегацию из расширенной конфигурации представлений. После того, как это установлено, вы можете выбрать max, min или любой другой селектор для полей.

Проверьте свои результаты, но они должны работать хорошо

  1. В качестве альтернативы в некоторых случаях вы можете отсортировать данные по возрастанию или по убыванию, а затем просто выбрать один из них для отображения в представлении. Может быть проблематично при отображении нескольких полей или около того.

После тестирования первый кажется быстрее, по крайней мере, в небольших масштабах.

person Viljami Salmi    schedule 21.06.2017

Можно рассмотреть модули groupby и views_calc, но я предполагаю, что они для вас неприемлемы.
Кроме того, это можно сделать с помощью настраиваемого модуля.

person Nikit    schedule 27.02.2010
comment
Спасибо! Ни один из этих модулей не помог. (Group by — это хорошо, но views calc — это скорее подключаемый модуль стиля.) Я тоже видел это обсуждение и, вероятно, пойду в этом направлении, но, черт возьми, это большая работа, чтобы включить MIN в запрос. Любые другие подсказки с благодарностью. - person ; 27.02.2010