Как вы получаете Min () или Max () в drupal, используя представления? - PullRequest
1 голос
/ 27 февраля 2010

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

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

Ответы [ 3 ]

1 голос
/ 12 июня 2014

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

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);
  }
}
1 голос
/ 21 июня 2017
  1. Использовать агрегацию из расширенной конфигурации представлений. После того, как это установлено да, вы можете выбрать максимальный, минимальный или любой другой селектор для полей.

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

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

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

0 голосов
/ 27 февраля 2010

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

...