AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Anzahl der Gruppenmitglieder, mit Distinct
Thema durchsuchen
Ansicht
Themen-Optionen

Anzahl der Gruppenmitglieder, mit Distinct

Ein Thema von hoika · begonnen am 1. Jun 2017 · letzter Beitrag vom 2. Jun 2017
Antwort Antwort
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.034 Beiträge
 
Delphi 12 Athens
 
#1

AW: Anzahl der Gruppenmitglieder, mit Distinct

  Alt 2. Jun 2017, 12:25
Moin zusammen,

das mit Hoika's Distinct finde ich zunächst schlicht gut, denn es trifft das Ergebnis bei kompaktem SQL-Ausdruck.
Bei einer insgesamt komplexen SQL würde ich auch die Idee von Nahpets View verwenden, das sieht dann windschnittig nach übersichtlichem Join aus. Der Gedanke von p80286 das ordentlich zu Normalisieren wäre natürlich das Optimum, aber die böse Praxis 'planiert' einem die Tabellenstruktur oft. Mir würde jetzt noch eine Variante mit HAVING Count (Memembername) = 1 einfallen. Das geht, ist aber von der Eleganz des Distinct doch geblendet. Die Oracle Freaks könnten auch noch mit SELECT ROW_NUMBER() OVER(PARTITION by Membername auffahren und dann immer die Row_Number=1, erster Satz der Gruppe, nehmen, dass hilft dann beim Abschrecken neuer Kollegen.

Also Hoika: - ist schon gut so -


Grüße in die Runde // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Anzahl der Gruppenmitglieder, mit Distinct

  Alt 2. Jun 2017, 13:54
Hallo,
keine Meckerei wegen DB-Design hier, war doch nur ein Beispiel.
So wie vorgeschlagen (Select x, Select())) habe ich es ja.

Aber das erzeugt einen SubSelect, den wollte ich vermeiden.
Da FB keine materialized Views kennt, bringt der View (außer Lesebarkeit) leider auch nichts.

Egal, bleibt so, ich habe wichtigere Sachen zu tun.

Schöne Pfingsten an alle hier.


Zitat:
Mir würde jetzt noch eine Variante mit HAVING Count (Memembername) = 1 einfallen
Das würde mir doch die Mitglieder, die mehrfach in der Gruppe sind, dann doch gar nicht mehr anzeigen, oder?
Heiko

Geändert von hoika ( 2. Jun 2017 um 14:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
794 Beiträge
 
#3

AW: Anzahl der Gruppenmitglieder, mit Distinct

  Alt 2. Jun 2017, 14:07
Und was ist mit
Code:
select count(distinct Feldname) from ...
aus meinem Link oben?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Anzahl der Gruppenmitglieder, mit Distinct

  Alt 2. Jun 2017, 15:55
Hallo,
den Link habe ich nicht verstanden,
genauer wie das mir was bringen soll, ein Subselect zu vermeiden.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
794 Beiträge
 
#5

AW: Anzahl der Gruppenmitglieder, mit Distinct

  Alt 2. Jun 2017, 16:01
Hallo,
den Link habe ich nicht verstanden,
genauer wie das mir was bringen soll, ein Subselect zu vermeiden.
Wenn ich dich richtig verstanden habe, dann bringt doch das
Code:
select count(distinct Feldname) from ...
das gewünschte Ergebnis (doppelte Einträge werden nicht gezählt)?!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Anzahl der Gruppenmitglieder, mit Distinct

  Alt 2. Jun 2017, 16:53
Hallo,
ja, aber verstanden habe ich nicht, wie ich das in meine Tabelle einbauen soll

geg:
2 Tabellen
Gruppe: GruppeNr,GruppenBezeichnung
Mitglied: Id, MitgliedNr, GruppenNr, Start, Ende

ges:
Liste aller Gruppen mit der Anzahl der Mitglieder,
mehrfach vorkommende Mitglieder in einer Gruppe sollen nur einfach gezählt werden

Sobald ich dein Select in das Gruppen-Select einbaue,
habe ich eine Subquery (durch das Distinct).
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
794 Beiträge
 
#7

AW: Anzahl der Gruppenmitglieder, mit Distinct

  Alt 2. Jun 2017, 17:10
So in etwa habe ich mir das vorgestellt:

Code:
select
  a.gruppenr,
  a.gruppebezeichnung,
  count(distinct b.mitgliednr)
from
  gruppe a
  join mitglied b on a.gruppenr=b.gruppenr
group by
  a.gruppenr,
  a.gruppebezeichnung
Oder habe ich dich komplett falsch verstanden?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz