Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MySQL - Abfrage einer Tabelle

Frage Entwicklung Datenbanken

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

28.03.2007, aktualisiert 06.05.2007, 4978 Aufrufe, 3 Kommentare

Guten Abend zusammen,

ich stehe an einer Aufgabe und komme einfach nicht auf die Lösung. Ist vielleicht ein banales Problem! *gg*

Hier die Aufgabe. Es gibt Folgende Tabelle:

id || Name || geschlecht
1 || Adam || m
2 || Allert || w
3 || Azuro || m
4 || Bosch || m
5 || Binder || w
6 || Boch || w

Das Ergebnis sollte so aussehen:

abc || w || m
A || 1 || 2
B || 2 || 1

Also es folgendes passieren:
Di 1. Tabelle sind die Daten. Sprich es soll gezählt werden, von welchen Anfangsbuchstaben (z.B. A). Dahinter soll dann ausgegeben werden wie viel davon weiblich bzw. männlich sind (als Summe).

Ist das mit EINER mySQL-Anweisung lösbar?! Sprich es sollte so gering wie möglich gehalten werden.


Grüße
Dani
Mitglied: Biber
29.03.2007 um 01:55 Uhr
Moin Dani,

eine von 1000 Möglichkeiten wäre
01.
select distinct(abc),count(femme) as w ,count(malle) as m from ( 
02.
select abc,sum(femme) as w ,sum(malle) as m from ( 
03.
SELECT left(name,1) as abc, iif(sex="w", 1,0) as femme , iif(sex="m",1,0) as malle  
04.
FROM [Names]) 
05.
group by abc 
06.
order by 1 ;
Mimik: Ich lege in dem inneren SELECT quasi einen View auf die Tabelle "Names" (Felder: Name; Sex [m/w]) an, der den Inhalt in drei Spalten darstellt.
- Spalte 1: "abc" = Erstes Zeichen von "Name",
- Spalte 2: "femme" mit Wert 1 falls Sex='w'eiblich, 0 wenn nicht;
- Spalte 3 "malle" mit 1 falls Sex= 'm'acho, 0 wenn nicht.
Und diesem View drücke ich dann mit der "Group by"-Clause und der Sum()-Funktion ein bissi die Luft aus dem Käse.

Wenn das oben zur Leserlichkeit etwas lange Statement zu prosaisch ist, dann etwas eingedampft:
01.
SELECT left(name,1) as abc,sum( iif(sex="w", 1,0)) as w ,sum( iif(sex="m",1,0)) as m  
02.
FROM Names 
03.
group by left(name,1) 
04.
order by 1;
Ergibt bei mir
abc w m
A 1 2
B 2 2
[Allerdings habe ich Gründen persönlicher Eitelkeit noch einen 7. Satz ("Biber", "m") hinzugefügt.]
Wenn ich noch "Mephisto", "m" und "Lolita", "w" (in dieser Reihenfolge) hinzufüge, erhalte ich
abc w m
A 1 2
B 2 2
L 1 0
M 0 1

Dieses Statement würde z.B. unter M$-Access' SQL fliegen; unter mySQL und anderen Varianten musst du wahrscheinlich die exotische M$-iif()-Skalar-Funktion durch ein
"....(CASE sex WHEN "w" THEN 1 ELSE 0 END CASE) as w"
...usw. ersetzen.

HTH Biber
Und weil man/frau mich "Biber, den Geduldigen" nennt, noch einmal für den Dani ganz allein:
Bei Fragen zu SQL-Queries bitte immer das darunterliegende Datenbank-Blech ( Oracle, DB2, M$SQL, mySQL...) angeben.
[Edit]Für die, die mich jetzt für verkalkt halten: Ursprünglich war der Titel "SQL - Abfrage einer Tabelle".
@Dani Danke fürs Editieren [/Edit]
Bitte warten ..
Mitglied: Dani
30.03.2007 um 00:24 Uhr
G' Abend Biber,
vielen Dank für dein Beispiel bzw.Erklärungen. Ich teste das mal in Ruhe (bis frühestens Mo.).Gebe euch /dir ne Rückmeldung.


Grüße
Dani
Bitte warten ..
Mitglied: Dani
06.05.2007 um 23:05 Uhr
G' Abend Biber,
also mein Kollege hat das Problem in Angriff genommen und seine Aussage war: "Es funktioniert!". Also dank dir herzlich und schönen Abend noch!


Gruß
Dani
Bitte warten ..
Ähnliche Inhalte
PHP
MYSQL Abfrage von 2 identischen Tabellen
gelöst Frage von datadexxPHP5 Kommentare

Hi an alle MYSQL Profis, ich hätte folgende Frage. Ich habe 2 Tabellen (kstamm, ustamm), diese sind vom Aufbau ...

Datenbanken
MYSQL Abfrage
gelöst Frage von datadexxDatenbanken20 Kommentare

Halo an alle MySQL Spezialisten! Wie kann ich denn am besten folgende Werte abfragen und berechnen? Ausgang für die ...

Datenbanken
Inkonsistente MySQL Tabellen wiederherstellen
Frage von AndroxinDatenbanken1 Kommentar

Moin, aus "Gründen" musste ich diverse MySQL Datenbanken von einer formatierten Festplatte wiederherstellen. In der Regel waren auch noch ...

Datenbanken
MySQL - Tabulator in Tabelle einfügen
gelöst Frage von mabue88Datenbanken1 Kommentar

Hallo, wie kann ich in MySQL Workbench in eine Spalte vom Typ VARCHAR() ein Tabulator ('\t') als Zeichen einfügen? ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 5 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 12 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 23 StundenWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless17 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...