【问题标题】:MySQL GROUP BY and conditionsMySQL GROUP BY 和条件
【发布时间】:2012-10-07 22:13:29
【问题描述】:

我想对下表进行分组并在检查选项值时返回parts_number。 也就是说,对于具有相同parts_number 的部件,将相同的选项值组合在一起。不能将parts_number 与不同的选项值混合。

parts | parts_number | option
A | 100 |1
B | 120 |1
A | 100 |0
C | 110 |1
B | 120 |1
C | 110 |0
A | 100 |0
A | 100 |0
A | 100 |1

在上述情况下,我的结果应该返回如下行:

parts | parts_number | option
A | 100 |1
B | 120 |1
A | 100 |0
C | 110 |1
C | 110 |0

A => 2
B => 1
C => 2

注意分组,但不要混合不同选项的部分。 我曾尝试按parts_number 分组,但我被困在我必须满足我的选择的地步。

我正在使用 PHP (CodeIgniter) 和 MySQL。非常感谢任何帮助。

【问题讨论】:

  • 仅供参考,您不需要添加 HTML 标记来格式化代码。如果您想向我们展示一些代码,只需将其放入代码块中,Stack Overflow 会为您很好地着色。
  • 我可以按parts_number 分组,但如何在此查询SELECT* FROM my_table GROUP BY parts_number 中检查/添加选项值

标签: php mysql database codeigniter group-by


【解决方案1】:
SELECT parts, parts_number, option
FROM parts
GROUP BY parts, parts_number, option

应该可以。

【讨论】:

  • @nairobicoder:这意味着那些parts、parts_number和option值相同的行都被视为一个组的一部分。所以它是按多个属性分组的,是的。
【解决方案2】:

我同意@YogendraSingh's answer;但是很难从您的问题中判断您是否(也?)想要分组结果的计数,可以通过以下方式获得:

SELECT parts, COUNT(DISTINCT parts_number, option) FROM my_table GROUP BY parts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-29
    • 2014-01-12
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    相关资源
    最近更新 更多