Januar 24, 2021, 23:41:08

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Statistische Auswertung - häufige Kombinationen

Begonnen von shamrock, Mai 19, 2010, 12:29:24

⏪ vorheriges - nächstes ⏩

shamrock

Hallo allerseits,

ich habe folgendes Problem:

In einer Datenbank mit zwei Spalten und ca. 300000 Zeilen, stehen in der ersten Spalte Benutzernamen und in der zweiten Spalte Profile, die der Nutzer besitzt, also z.B.

MaxM         | Profil A
MaxM         | Profil B
MaxM         | Profil C
MonikaB     | Profil B
Monika B    | Profil C
Monika B    | Profil D
HeinzF       | Profil A
HeinzF       | Profil B
...


Ich möchte jetzt ermitteln, welche Profilkombinationen häufig auftreten, und mir die Anzahl ausgeben lassen.
Also anhand obigem Beispiel: Profil B und Profil C = 3; Profil A und Profil B = 2...

Hat jemand eine Idee, wie ich das in Access oder in Excel lösen könnte?

Eine Pivottabelle kommt auf grund der hohen Anzahl der verschiedenen Profile schon mal nicht in Frage.

Danke für eure Tipps!



Dorian

Hallo!

Mit Access ist das kein Problem.

SELECT Tabelle1.[Profil], Count(Tabelle1.[Benutzername]) AS AnzahlvonBenutzername
FROM Tabelle1
GROUP BY Tabelle1.[Profil];



Gruß

Dorian

oma

Hallo,

ich denke, es soll die Anzahl der Kombinationen ermittelt werden. Dies erscheint mir nicht ganz so trivial.
Hierbei ist ja auch die Anzahl der möglichem Kombinationen wichtig. Mit ProfilA bis ProfilD wären ja 6 Kombinationen möglich.

Mal ein Lösungsentwurf für die 1. drei Kombinationsmöglichkeiten:

select BenutzerName,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilB' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AB,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilC' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AC,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilD' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AD
from Tabelle
group by BenutzerName
order  by BenutzerName;


ist bei einem Benutzer die Kombination enthalten, ergibt sich aus der Abfrage 1 ansonsten 0

Wenn du diese so benötigst, musst du um die weiteren Kombinationen erweitern und anschließend die Summe der einzelnen Kombinationen berechnen! Teste es doch einfach einmal

Vielleicht geht's auch irgendwie einfacher 8)

Gruß Oma

nichts ist fertig!

shamrock

Hallo,

danke erst mal für eure Tipps!
Zitat von: oma am Mai 19, 2010, 16:28:46

select BenutzerName,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilB' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AB,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilC' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AC,
IIf(dcount("*","[Tabelle]","[Profil]='ProfilA' AND BenutzerName=" & "'" & [BenutzerName] & "'" & " OR [Profil]='ProfilD' AND BenutzerName=" & "'" & [BenutzerName] & "'")=2,1,0) AS AD
from Tabelle
group by BenutzerName
order  by BenutzerName;





Um es so zu lösen gibt es leider zu viele Profile  :'(

bahasu

Hallo,

anbei ein Versuch per selbstverknüpfter Abfrage/Tabelle.
Vorausgesetzt im Beispiel habe ich, dass nur nach einer Zweierkombination gefragt wird.

Harald

[Anhang gelöscht durch Administrator]
Servus

bahasu

Hallo shamrock,

würde mich über Deine Rückmeldung freuen, wie Du Dein Problem gelöst hast.

Harald
Servus

shamrock

Guten Morgen Harald,

danke für Deinen Tipp, war bisher der sinnvollste.
Gelöst habe ich das Problem bisher gar nicht, möglicherweise muss ich - auch wegen der großen Datenmenge - mal einen Experten drüber schauen lassen.