![]() |
Datenbank: MySql • Version: 5.5 • Zugriff über: -
Anzahl Datensätze in einem Zeitraum
Hallo,
ich habe eine Tabelle mit den Feldern id, name, date. Mehrerer Einträge können unter name den gleichen Wert haben. Ich möchte nun die Anzahl der Datensätze ermitteln, deren Name als erstes in einem bestimmten Zeitraum auftritt. Eine einfache (und elend langsame) Möglichkeit wäre ein Subquery:
Code:
Das muss doch schneller gehen, oder?
SELECT COUNT(DISTINCT `name`) FROM table WHERE `Date` BETWEEN @start AND @end AND `name` NOT IN (SELECT DISTINCT `name` FROM table WHERE `Date` < @start)
Gruß xaromz |
AW: Anzahl Datensätze in einem Zeitraum
Ungetestet:
SQL-Code:
SELECT
COUNT(X.*) FROM (SELECT `Name`, MIN(`Date`) FROM Table WHERE MIN(`Date`) BETWEEN @start AND @end GROUP BY `Name` ) X |
AW: Anzahl Datensätze in einem Zeitraum
ich kenne mich mit MySQL nicht aus, geht sowas?
Code:
Select Name from
( Select `name`,MinD(`Date`) as min,MaxD(`Date`) as Max FROM Table GROUP by `name` ) a where `MinD` >= @start and `MaxD` <= @end |
AW: Anzahl Datensätze in einem Zeitraum
Zitat:
Dies hier funktioniert zumindest unter MSSQL mit den Delphi Demo-Daten:
SQL-Code:
SELECT COUNT(*) FROM
(SELECT CUSTNO, MIN(SALEDATE) as STARTDATE FROM [dbo].[ORDERS] GROUP BY CUSTNO) X WHERE STARTDATE BETWEEN '1988-05-01' and '1988-05-31' |
AW: Anzahl Datensätze in einem Zeitraum
Hast Recht, MySQL ist da IIRC blöderweise nicht so restriktiv, logischerweise sollte aber schon gruppiert werden. Ich ändere das oben mal ab, Danke für den Hinweis.
[edit] Wenn man doch eh schon gruppiert, müsste doch das hier auch funktionieren, wenn ich keinen Denkfehler mache:
SQL-Code:
[/edit]
SELECT
COUNT(X.*) FROM (SELECT `Name`, MIN(`Date`) FROM Table GROUP BY `Name` HAVING MIN(`Date`) BETWEEN @start AND @end ) X |
AW: Anzahl Datensätze in einem Zeitraum
Hallo,
danke für die Hilfe. Der letzte Vorschlag ist super. Noch eine Frage dazu: Das MIN(Date) kann ich doch mit einem Alias versehen und dann beim "HAVING" das Alias einsetzen, oder? Keine Ahnung, ob die DB das selbst optimiert. Gruß xaromz |
AW: Anzahl Datensätze in einem Zeitraum
Zitat:
|
AW: Anzahl Datensätze in einem Zeitraum
Zitat:
|
AW: Anzahl Datensätze in einem Zeitraum
Ok, danke.
Gruß xaromz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 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 by Thomas Breitkreuz