Heim >Backend-Entwicklung >PHP-Tutorial >So zählen und fragen Sie kontinuierliche Check-Ins und kumulative Check-Ins in MySQL ab
Zwei Fragen: Fragen Sie zunächst die kumulative Anzahl der Anmeldungen innerhalb eines bestimmten Zeitraums ab (ähnlich wie bei Tieba kann sich jeder Benutzer einmal bei jeder Organisation anmelden, aber egal bei wie vielen Organisationen sich der Benutzer anmeldet, solange Er meldet sich bei einer Organisation an. Wenn Sie jeden Tag einchecken, zählen Sie die Anzahl der Tage, die Sie innerhalb des angegebenen Zeitintervalls eingecheckt haben.) Zweitens zählen Sie die längste Anzahl aufeinanderfolgender Check-in-Tage innerhalb eines bestimmten Zeitraums
Zwei Fragen: Fragen Sie zunächst die kumulative Anzahl der Anmeldungen innerhalb eines bestimmten Zeitraums ab (ähnlich wie bei Tieba kann sich jeder Benutzer einmal bei jeder Organisation anmelden, aber egal bei wie vielen Organisationen sich der Benutzer anmeldet, solange Er meldet sich bei einer Organisation an. Wenn Sie jeden Tag einchecken, zählen Sie die Anzahl der Tage, die Sie innerhalb des angegebenen Zeitintervalls eingecheckt haben.) Zweitens zählen Sie die längste Anzahl aufeinanderfolgender Check-in-Tage innerhalb eines bestimmten Zeitraums
Die erste besteht darin, die Zeit in Tage umzuwandeln (z. B. mit der Funktion TO_DAYS), und dann wacht DISTINCT auf.
Die zweite Methode ist bei der Verwendung von SQL etwas umständlich. Es ist besser, sie in der Anwendung zu berechnen
Erstens:
<code>select 用户, count(distinct 签到日期) from table where 签到日期 between 起始日期 and 结束日期 group by 用户 </code>
Der zweite Punkt:
MySQL unterstützt keine hierarchische Abfrage und SQL ist nicht einfach zu handhaben