0
votes

MySQL Rejoindre la date sur une table

J'ai une table nommée sismik code> xxx pré>

Ce que je veux faire est de compter la quantité de type rock à chaque date, mais je veux la date de Don 't avoir la pierre existe toujours et la valeur est null. p>

donc j'utilise cette requête p> xxx pré>

et le résultat devient p>

╔═══════════════╦══════════╦═════════╗
â•‘      date     â•‘ type     â•‘ freq    â•‘ 
╠═══════════════╬══════════╬═════════╣
â•‘   2019-04-01  â•‘  rock    â•‘    1    â•‘
â•‘   2019-04-02  â•‘  rock    â•‘    2    â•‘
â•‘   2019-04-03  â•‘  null    â•‘   null  â•‘ <- This
â•‘   2019-04-04  â•‘  rock    â•‘    1    â•‘
╚═══════════════╩══════════╩═════════╝


2 commentaires

"SQL-92 et plus tôt ne permettent pas aux requêtes pour lesquelles la liste de sélection, la condition ou la commande par liste se réfèrent à des colonnes non contagieuses qui ne sont pas nommées dans le groupe par clause" voir manuel , votre requête est invalide.Aussi avec une dépendance fonctionnelle qui ne peut pas être utilisé sur ces données.


Sans une clé primaire, vous n'avez pas vraiment de table.


3 Réponses :


3
votes

Utilisez le cas lorsque et supprimez le condition

Démo xxx

sortie: xxx


1 commentaires

+1 Pour la mise à jour, j'ai aussi besoin de café, lorsque je lisais votre mise à jour, je remarquais que je faisais la très dure de l'utilisation d'une jointure croisée pour générer totalement l'enregistrement manquant de la méthode plus facile et oublié que max ( ) produit une valeur null .



-1
votes

Dans votre requête, vous sélectionnez toutes les entrées, qui ont le type "Rock". Si vous voulez également vouloir obtenir ceux avec type NULL, vous devrez supprimer votre clause.


1 commentaires

groupe invalide par, tapez n'est pas dans le groupe par



0
votes
select s.Date,e.type,count(e.type)/4 
FROM seismik as s left join seismik as e
on e.type = s.type and e.type='rock'
GROUP BY date;
Result:-
  2019-04-01    rock    1.0000
  
  2019-04-02    rock    2.0000
  
  2019-04-04    rock    1.0000
  
  2019-04-03            0.0000

0 commentaires