0
votes

MySQL remplir les valeurs manquantes avec 0

J'ai une requête MySQL qui entraîne parfois des valeurs manquantes. Pour mon tableau de bord, je voudrais remplir ces valeurs, mais préférez éviter de construire des tables factices si je peux.

Query: P>

+---------------------+
| Comms_Timestamp     |
+---------------------+
| 2018-12-24 06:04:05 |
| 2018-12-24 12:18:39 |
| 2018-12-21 04:24:31 |
| 2018-12-21 08:32:44 |
| 2018-12-30 01:41:06 |
| 2018-12-30 01:53:00 |
| 2018-12-30 01:53:39 |
| 2018-12-30 02:00:01 |
| 2018-12-17 15:55:03 |
| 2018-12-17 16:04:12 |
| 2018-12-17 16:05:41 |
| 2018-12-17 16:07:43 |
| 2018-12-17 16:10:25 |
| 2018-12-18 14:03:22 |
| 2018-12-18 14:03:29 |
| 2018-12-18 14:10:19 |
| 2018-12-18 14:10:29 |
| 2018-12-18 14:10:31 |
| 2018-12-18 14:10:47 |
| 2018-12-18 14:10:55 |
| 2018-12-20 08:21:07 |
| 2018-12-28 11:03:59 |
| 2018-12-28 12:06:40 |
| 2018-12-28 12:15:01 |
| 2018-12-28 14:29:24 |
| 2019-01-05 13:33:43 |
+---------------------+


4 commentaires

Pouvez-vous publier peu de choses comme la structure des deux tables avec certaines données dedans? Ce beaucoup d'informations est inadéquate pour suggérer correctement.


Cela pourrait vous aider Link


@Ravigaudani Je tente spécifiquement d'éviter de construire des tables vides.


@Bhushanshinde fait


3 Réponses :



0
votes

Vous pouvez utiliser une fonction ifnull () dans MySQL:

SELECT IFNULL(COUNT(C.Comms_Timestamp),0) as call_count,IFNULL(DAYOFWEEK(C.Comms_Timestamp),0) as bucket 
FROM tblCommunication as C LEFT JOIN tblCareTeam as CT on C.id_Case = CT.id_Case 
GROUP BY CT.id_Site,bucket 
HAVING CT.id_Site=8;


1 commentaires

Désolé quefintly ne fait rien



1
votes

Depuis que vous utilisez MySQL et n'ayez pas accès à l'option SEQ _ code>, voici une solution alternative:

SELECT A.x AS bucket, IF(ISNULL(COUNT(t2.Comms_Timestamp)), 0, COUNT(t2.Comms_Timestamp)) AS call_count FROM
(select 1 x union select 2 union select 3 union select 4 union select 5 union select 6 union select 7) AS A
LEFT JOIN tblTest AS t2 ON DAYOFWEEK(t2.Comms_Timestamp) = A.x
GROUP BY bucket
ORDER BY bucket;


0 commentaires