From 97d2a920db4e59fdaa9bbe4623ca0ab3015f80d9 Mon Sep 17 00:00:00 2001 From: Alexander Fuhr Date: Mon, 6 Oct 2014 11:34:04 +0200 Subject: [PATCH] Implement GROUP BY clause functionality --- library/Icinga/Data/Db/DbQuery.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/library/Icinga/Data/Db/DbQuery.php b/library/Icinga/Data/Db/DbQuery.php index a759da6b5..c50049ee7 100644 --- a/library/Icinga/Data/Db/DbQuery.php +++ b/library/Icinga/Data/Db/DbQuery.php @@ -59,6 +59,13 @@ class DbQuery extends SimpleQuery */ protected $count; + /** + * GROUP BY clauses + * + * @var string|array + */ + protected $group; + protected function init() { $this->db = $this->ds->getDbAdapter(); @@ -100,6 +107,10 @@ class DbQuery extends SimpleQuery } } + if ($this->group) { + $select->group($this->group); + } + $select->columns($this->columns); $this->applyFilterSql($select); @@ -300,4 +311,17 @@ class DbQuery extends SimpleQuery { return (string) $this->getSelectQuery(); } + + /** + * Add a GROUP BY clause + * + * @param string|array $group + * + * @return $this + */ + public function group($group) + { + $this->group = $group; + return $this; + } }