Как вы получаете Min() или Max() в drupal, используя views?

StackOverflow https://stackoverflow.com/questions/2344888

  •  23-09-2019
  •  | 
  •  

Вопрос

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

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

Нет правильного решения

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

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

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. Используйте агрегацию из расширенной конфигурации представлений.После установки этого параметра да, вы можете выбрать max, min или любой другой селектор полей.

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top