Wie "HAVING COUNT(DISTINCT(col1, col2))"

Also ich habe eine Tabelle mit drei Spalten - col1, col2 und col3. Ich brauche, um diejenigen auszuwählen, die Werte der col1 teilen Zeilen mit nur eine combinarion von col2 und col3. In der idealen Welt würde ich dies Schreibe:

SELECT col1 FROM table
GROUP BY col1
HAVING COUNT(DISTINCT(col2, col3)) = 1

Wie zu tun, dass in der realen Welt?

Bisher habe ich zwei Lösungen - eine Gruppe von col1 und col2 und durch col1 und col3 Sie join-Ergebnisse; oder eine Gruppe durch alle drei dann die Gruppe, die durch col1. Leider bekomme ich (sehr) verschiedenen wor zählt.

Sich die Datenbank auf SQL Server 2005.

  • Willst du Spiel, wo es nur einen col2 oder col3 Wert, haben Sie Sorge, wenn es ist eins von jedem oder mehrere, aber in verschiedenen Reihen? Wenn Sie geben Sie einige Beispiel-Daten, und was würden Sie wollen zurück, es wäre einfacher zu helfen
  • col1 nie gleich col2 oder col3. Stell dir vor, wenn Tabelle tracks Abendessen im Restaurant: col1 ist ein name, col2 Restaurant und col3 ist der Tag des schwachen. Ich bin nur daran interessiert, Menschen, die Essen-in nur einem Restaurant und immer am gleichen Tag ow schwach.
  • Nun, das ist, warum ich gewählt, um eine Auszahlung meiner eigenen Antwort - Ihre Frage war unklar und meine Antwort wird nicht funktionieren. Allerdings, wenn eine person isst in einem anderen restaurant jeden Abend, wie viele Male sollte Sie werden im ResultSet zurückgegeben?
  • Null. Klar, Sie erfüllen nicht die genannten Kriterien I'm only interested in people that eat-out in only one restorant and alway on the same day ow weak. sich Nicht sicher, was ist unklar???
  • Wenn das der Fall ist, dann ist die Frage beantwortet worden ist.
  • Smith: mein Punkt war gerichtet an diejenigen, die zur Verfügung gestellt hatte, die Antworten zu diesem Punkt in dem Formular an der Zeit, die Sie zurückkehren würde, col1 für jede eindeutige Kombination von col2&col3. Nach änderungen, die Sie tun, geben Sie die alleinige Kombination erforderlich
  • Keine der Antworten, die bearbeitet wurden, wie Sie Sie vorschlagen, wie weit ich bin bewusst. Sicherlich war mir nicht und ziemlich sicher gbn ist man nicht entweder (die einzige änderung, die ich sah, war das hinzufügen einer zweiten Methode)
  • Smith: ich fügte hinzu, eine Antwort, die ich gelöscht, sobald klar wurde, dass es nicht das war, was erforderlich war. So können Sie nicht mehr sehen.
  • So es scheint, Sie waren in der Tat die einzige person, die sich unklar, dann und jeder andere verstanden es in Ordnung. Ich glaube nicht, dass es fair ist, Schuld ist dann die Frage. BTW 10K+ Benutzer können gelöschte Antworten.

InformationsquelleAutor zzandy | 2012-02-16
Schreibe einen Kommentar