簡體   English   中英

如何在MySQL中使用GROUP BY和條件進行計數

[英]How I can count with GROUP BY and condition in MySQL

我有這張桌子:

_legajo的注冊組

我需要:

索引

哪里:

  • 完成所有具有相同_legajo and _count > 0

  • 零的所有記錄都具有same_legajo and _count = 0

  • Track的所有記錄都具有相同的_legajosome records with _count 0 and some with _count >some records with _count 0 and some with _count >

我的表是2萬條記錄

我在PHPMySQL

一些想法?

您可以先為每個_legajo選擇MINMAX

SELECT _legajo, MIN(_count), MAX(_count)
  FROM signups
  GROUP BY _legajo;

如果MAX為零,則自然屬於zero類別。 如果MIN大於零,則它屬於complete類別(然后MAX自然大於零)。 如果MIN為零而MAX不為零,則它處於正常track

然后,您可以使用SUM來確定符合條件的計數:

SELECT
  SUM(CASE WHEN min>0 THEN 1 ELSE 0 END) as complete,
  SUM(CASE WHEN max=0 THEN 1 ELSE 0 END) as zero,
  SUM(CASE WHEN min=0 AND max>0 THEN 1 ELSE 0 END) as track
FROM (SELECT _legajo, MIN(_count), MAX(_count)
  FROM signups
  GROUP BY _legajo) a;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM