Я использую Drupal Views 2, и мне нужно получить минимальные значения из полей в пользовательской таблице. Запрос для этого был бы простым, если бы я писал его вручную — что-то вроде «SELECT foo, min(bar) FROM table GROUP BY foo». Но как мне это сделать с помощью представлений? Я уже определил таблицу в файле views.info, поэтому нет проблем с получением представлений для просмотра таблицы. Это часть запроса Min(), которую я просто не понимаю.
Следующей моей остановкой будет документация по Views API, но если кто-то может просто предоставить схему того, как это сделать быстро, я был бы очень признателен.
Как получить Min() или Max() в drupal с помощью представлений?
Ответы (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
- Используйте агрегацию из расширенной конфигурации представлений. После того, как это установлено, вы можете выбрать max, min или любой другой селектор для полей.
Проверьте свои результаты, но они должны работать хорошо
- В качестве альтернативы в некоторых случаях вы можете отсортировать данные по возрастанию или по убыванию, а затем просто выбрать один из них для отображения в представлении. Может быть проблематично при отображении нескольких полей или около того.
После тестирования первый кажется быстрее, по крайней мере, в небольших масштабах.
person
Viljami Salmi
schedule
21.06.2017
Можно рассмотреть модули groupby и views_calc, но я предполагаю, что они для вас неприемлемы.
Кроме того, это можно сделать с помощью настраиваемого модуля.
person
Nikit
schedule
27.02.2010
Спасибо! Ни один из этих модулей не помог. (Group by — это хорошо, но views calc — это скорее подключаемый модуль стиля.) Я тоже видел это обсуждение и, вероятно, пойду в этом направлении, но, черт возьми, это большая работа, чтобы включить MIN в запрос. Любые другие подсказки с благодарностью.
- person ; 27.02.2010