Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL: Anzahl verschiedener Werte in einer Spalte (https://www.delphipraxis.net/4608-mysql-anzahl-verschiedener-werte-einer-spalte.html)

Chewie 6. Mai 2003 11:39


MySQL: Anzahl verschiedener Werte in einer Spalte
 
Ich zerbreche mir gerade den Kopf darüber, wie ich am effizientesten Folgendes tun kann:
Ich hab eine MySQL-Tabelle, in der ich eine Spalte parameter2 (INT) habe und zwei VARCHAR-Spalten. Nun suche ich die Anzahl der verschiedenen Werte in der Spalte parameter2. In dieser Spalte kann der gleiche Wert beliebig oft vorkommen, also ist die Zeilenanzahl nicht gleich der Anzahl verschiedener Werte. Eine Einschränkung ist noch, dass eine Reihe übberhaupt nur berücksichtigt werden darf, wenn sich in den beiden VARCHARS ganz bestimmte Strings befinden.
Hat da jemand eine Idee, wie man das mit MySQL-Bordmitteln lösen kann, ohne clientseitig die Anzahl zu ermitteln?

Ach ja, ich benutze die Win-Version von MySQL 3.23.54

MrSpock 6. Mai 2003 12:15

Hallo Chewie,

das müsste gehen über:

Delphi-Quellcode:
SELECT COUNT(parameter2) WHERE parameter2 IN (SELECT DISTINCT parameter2 FROM mytable)
falls MySQL das unterstützt.

Chewie 6. Mai 2003 12:41

DISTINCT ist bekannt, aber es gibt Probleme mit dem IN-Operator. Jedenfalls liefert diese Abfrage einen Fehler.
Allerdings bringt mich das DISTINCT weiter, denn ich gehe jetzt folgendermaßen vor:
Mit
SQL-Code:
SELECT DISTINCT parameter2 FROM mytable
hole ich mir alle Werte der Spalte genau einmal, und dann ist ja die Anzahl der Zeilen gleich der Anzahl der verschiedenen Werte.

mjenke 6. Mai 2003 14:15

Hallo, Chewie

Du könntest folgende Query ausprobieren

Code:
SELECT COUNT(DISTINCT Parameter2) FROM tabelle WHERE Spalte1 = "abraham" AND Spalte2="abraham"
Habe es auf einer Paradox-Tabelle mit dem SQL-Editor im BDE-Datenbankexplorer ausprobiert. Dort hat es funktioniert.

:D
Matthias

Chewie 6. Mai 2003 14:33

Sehr gut, danke. So ähnlich hat ich es schon, aber auf die Idee, das distinct in die Klammer zu setzen, bin ich nicht gekommen :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz