mysql SI dans la clause GROUP BY
Est-il un moyen de faire de la si dans la clause group by?
J'ai une question où je veux du groupe le résultat basé sur la valeur d'une colonne
si la colonne est Null, je veux le résultat de rester comme il est, mais si pas, je veux qu'il les groupe en fonction de cette valeur? comment faites-vous cela?
edit: désolé, je pense que je devrais mettre un exemple plus spécifique
les colonnes ci-dessous contient l'id de la catégorie, le fil et répondre
c'est pour un forum
ceux avec des valeurs null signifie qu'ils n'ont pas de réponse dans leur
si la réponse est nulle, je ne veux pas qu'il les groupe
le but est de compter les réponses et les fils à l'intérieur d'une catégorie
je n'ai pas la valeur de répondre à null, ils sont comme ça parce que le résultat d'une jointure
| category | thread | reply |
-------------------------------
| 1 | 1 | 1 |
| 1 | 1 | 2 |
| 1 | 2 | 3 |
| 2 | 3 | 4 |
| 3 | 4 | 5 |
| 3 | 4 | 6 |
| 4 | 5 | null |
| 5 | 6 | null |
alors le résultat serait
| category | thread | reply |
-----------------------------
| 1 | 3 | 3 |
| 2 | 1 | 1 |
| 3 | 2 | 2 |
| 4 | 1 | null |
| 5 | 1 | null |
vous devez nous montrer la jointure que vous utilisez pour obtenir ce résultat, il peut être fait sur cette jointure.
OriginalL'auteur user949000 | 2013-07-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez inclure une instruction de CAS dans un GROUP BY ou ORDER BY:
OriginalL'auteur Curt
De mysql 5.6, vous pouvez utiliser un IF() dans la clause order by.
Comme ceci:
Peut-être pas la bonne réponse pour votre cas spécifique, mais utile pour d'autres personnes à la recherche de quelque chose comme cela.
OriginalL'auteur Ludo - Off the record
Si je vous comprends bien essayer de cette façon:
SQL Violon
OriginalL'auteur Vitaly
Essayez d'utiliser Groupe Par
SQL Violon
OriginalL'auteur Luv
Vous pouvez simplement faire ceci:
OriginalL'auteur Bohemian
MySQL groupe de toutes les lignes avec fr=null en un seul, comme si c'était une valeur normale.
Pour résoudre votre problème, je voudrais faire une sous-sélection de votre table, où une nouvelle colonne a obtenu la valeur de fr (dans le cas où il n'est pas nul) ou une valeur incrémentée hors de la portée normale de fr, peut-être des nombres négatifs. Et puis faire de l'extérieur sélectionne groupe par cette nouvelle colonne virtuelle.
sqlfiddle
OriginalL'auteur Andreas Wederbrand