requête sql pour trouver la somme de toutes les lignes et le nombre de doublons
Si les données sont dans le format suivant:
SID TID Tdatetime QID QTotal
----------------------------------------
100 1 01/12/97 9:00AM 66 110
100 1 01/12/97 9:00AM 66 110
100 1 01/12/97 10:00AM 67 110
100 2 01/19/97 9:00AM 66 .
100 2 01/19/97 9:00AM 66 110
100 2 01/19/97 10:00AM 66 110
100 3 01/26/97 9:00AM 68 120
100 3 01/26/97 9:00AM 68 120
110 1 02/03/97 10:00AM 68 110
110 3 02/12/97 9:00AM 64 115
110 3 02/12/97 9:00AM 64 115
120 1 04/05/97 9:00AM 66 105
120 1 04/05/97 10:00AM 66 105
J'aimerais être capable d'écrire une requête à la somme de la QTotal colonne pour toutes les lignes et de trouver le nombre de lignes en double pour la Tdatetime colonne.
La sortie devrait ressembler à:
Year Total Count
97 | 1340 | 4
La troisième colonne dans le résultat n'inclut pas le nombre de lignes distinctes dans le tableau. Et les résultats sont regroupés par année dans le TDateTime colonne.
Pour ce qui de la base de données?
Je ne suis pas sûr de ce que la base de données des informations dont vous auriez besoin.
Il demande ce que le SGBD est. SQL Server, Oracle, MySql, etc.
Je ne suis pas sûr de ce que la base de données des informations dont vous auriez besoin.
Il demande ce que le SGBD est. SQL Server, Oracle, MySql, etc.
OriginalL'auteur ARK | 2010-09-09
Vous devez vous connecter pour publier un commentaire.
La requête suivante peut aider:
J'ai mis à jour le code.
Je sais que c'est une vieille question, mais pour quelqu'un d'autre qui le trouve:
HAVING COUNT(Tdatetime) > 2
devrait probablement être> 1
ou>= 2
sinon il ne sera pas trouver quelque chose où il y est un nombre de 2C'est le droit. Il fixe. Merci.
OriginalL'auteur Zafer
Cela ne fonctionnera que si vous voulez vraiment de groupe par le tDateTime colonne:
Mais vos résultats ressembler que vous souhaitez regrouper l'Année dans le tDateTime colonne. Est-ce correct?
Si donc, essayez ceci:
Jetez un oeil à ma mise à jour
l'habitude ce sont les lignes qui n'ont pas de lignes en double? le résultat de la requête ne doit affichage en double comptage, en excluant les lignes distinctes.
Hmm ok, je pense que je vais devoir faire un peu de refactoring. J'ai ajouté un
HAVING
déclaration, mais je pense qu'il manque encore quelque chose. Stand by...Ok, je suis confus au sujet de l'endroit où vous obtenez le comte de 4 à partir de vos résultats souhaités? Vous dites compter en double tDateTime mais il y en a 5 en double dates là? Vouliez-vous dire de mettre 5?
OriginalL'auteur Abe Miessler
Vous devez faire une sélection à partir de ce tableau de Regroupement par QTotal, à l'aide de COUNT(sous-sélection à partir de cette table OÙ QTotal est le même). Si j'ai seulement j'avais le temps, je voudrais vous écrire la requête SQL, mais ça va prendre quelques minutes.
OriginalL'auteur Tomasz Kowalczyk
Quelque chose comme:
ou date
Ou votre laide syntaxe ( : ) )
Ou voulez-vous juste l'année? La somme de toutes les colonnes? Ou tout simplement par année?
OriginalL'auteur Nix
OriginalL'auteur Conrad Frix
C'est la première fois que j'ai posé une question sur stackoverflow. Il semble que j'ai perdu mon IDENTIFIANT d'origine de l'info. J'ai eu à vous inscrire pour vous connecter et ajouter des commentaires à la question que j'ai posté.
Pour répondre OMG Poneys question, c'est une base de données SQL Server 2008.
@Abe Miessler , la ligne avec SID 120 ne contient pas de doublons. la première ligne de SID 120 spectacles de 9:00 dans la colonne datetime , et la deuxième ligne montre 10:00.
@Zafer, votre requête est acceptée réponse. J'ai fait quelques modifications mineures à obtenir pour fonctionner. Merci.
Grâce en raison de Abe Miessler et les autres pour votre aide.
OriginalL'auteur user443790