【问题标题】:MySQL Group By with DistinctMySQL Group By with Distinct
【发布时间】:2015-07-13 11:01:06
【问题描述】:

我有一个动态表(来自子查询):

col1 | col2
-----------
 14  | 1000
 14  | 2000
 14  | 3000
 15  | 1000
 15  | 2000

我想按 col1 对结果进行分组,但 col2 值不同:

col1 | col2
-----------
 14  | 1000
 15  | 2000

有可能吗?

附加信息

  • col2 由 ASC 排序
  • col1 值不重要,可以从结果表中删除
  • 行数 = col1 唯一值的数量

【问题讨论】:

  • 为什么 col2 有这些值?
  • 你的逻辑不清楚。记录 (14, 2000) 和 (15, 2000) 发生了什么变化?如果你有 (14, 3000) 会发生什么?
  • @LoztInSpace 实际上我只需要 col2 值和唯一 col1 值的计数。 col1 值本身并不重要。 1000 | 2 和 2000 | 2也可以
  • 对不起,伙计,但我仍然不知道您要做什么。如果您想要不同的 col 2,则只需选择 distinct col2。除非你的意思是 select count2, count(distinct col1) from table group by col2

标签: mysql


【解决方案1】:

请试试这个:

select DISTINCT(col2), col1 from tablename group by col1

【讨论】:

  • col2 的值都是 1000
  • Yes..它将从查询中获取第一条记录,因此两个 col2 值都是 1000。您必须检查其他内容作为查询中的条件,否则它将从查询中获取第一条记录获取的行。
猜你喜欢
  • 2020-11-05
  • 1970-01-01
  • 2020-10-30
  • 2014-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多