Мне нужно показать количество записей, созданных каждым пользователем в таблице с именем «RE».
Только непустые записи должны быть подсчитаны столбцом с именем «DD».
Результат должен быть показан в таблице.
Я уже пытался сделать это так, но безрезультатно:
<?php
if ($username = 'John Doe') {
echo "<table>";
$query = "SELECT user, COUNT(DISTINCT DD) AS number FROM RE GROUP BY user";
$results = mysqli_query($conn, $query);
for ($i = 0; $i < count($results); $i++) {
foreach ($user[$i] as $field => $value) {
if ($field == "number") {$number = $value;}
}
echo "<tr><td>".$user."</td><td>".$number."</td></tr>";
}
echo "</table>";
}
?>
Что мне не хватает?
Вдобавок ко всему, подсчет различных значений может быть не тем, что вы хотите, а также у вас может быть пустая строка, в дополнение к NULL
для ваших «пустых записей». Если это так, то было бы целесообразно подсчитать записи, которые не являются NULL
и не пустая строка.
SELECT
user,
SUM(CASE WHEN COALESCE(DD, '') <> '' THEN 1 ELSE 0 END) AS number
FROM RE
GROUP BY user
Правильный способ подсчета «непустых» результатов выглядит примерно так:
SELECT user, COUNT(DD) AS number
FROM RE
GROUP BY user;
Это предполагает, что «пустой» NULL
,