У меня есть таблица с большим количеством полей, и мне нужно вернуть COUNT NOT NULL для каждого поля.Выберите COUNT, где поле NOT NULL, для каждого поля таблицы
Я делаю петлю в PHP, и я выполнить 1 запрос на поле ...
$result = array();
$champs = array("field1", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9", "field10", "field11", "field12", "field13", "field14", "field15", "field16", "field17", "field18", "field19", "field20");
foreach ($champs as $value) {
$and = empty($filtroAdd) ? "$value IS NOT NULL" : "AND $value IS NOT NULL";
$requete = "SELECT COUNT($value)
FROM my_table
WHERE $filtroAdd $and";
$r = $db->query($requete)->fetch(PDO::FETCH_NUM);
$result[$value] = $r[0];
}
print_r($result);
Я думаю, что это не лучший способ, и мы, безусловно, может вернуть тот же конечный результат с одного запроса PostGreSQL ?!
Спасибо за помощь
'COUNT ()' 'уже исключает значения NULL'. См. Http://www.techonthenet.com/postgresql/functions/count.php, поэтому у вас может быть один «SELECT» с несколькими 'COUNT (...)' –