根据另一行仅计算一次

时间:2019-06-04 19:18:58

标签: mysql

我在描述我想做的事情时遇到了麻烦,但是这个例子是最好的解释:

下面大部分是我想做的,但是还有另一列:日期,我只想对每个商店的每个日期计数一次

SELECT key,COUNT(*) AS 'cnt',NAME FROM myTable GROUP BY key

所以排除所有不相关的数据,可以说我有

  KEY  |  DATE
--------------------

  A    |  2019-06-01*
  A    |  2019-06-01
  A    |  2019-06-02*
  A    |  2019-06-03*
  B    |  2019-06-01*
  B    |  2019-06-01
  B    |  2019-06-01
  B    |  2019-06-02*
  C    |  2019-06-01*
  C    |  2019-06-02*

我想得到

A | 3
B | 2
C | 2

仅计算每个键的第一个唯一日期(标有*)。
有什么简单的方法可以解决我所缺少的吗?

1 个答案:

答案 0 :(得分:2)

SELECT KEY, COUNT(DISTINCT DATE) AS 'cnt' FROM myTable GROUP BY KEY;