【问题标题】:Sql count distinct valuesSql计算不同的值
【发布时间】:2021-05-07 00:45:09
【问题描述】:

我正在尝试计算按不同列分组的不同值 这是我的桌子:产品

id typePr namePr
1 typeA nameA
2 typeeB nameC
3 typeA nameB
4 typeA nameB
5 typeB nameA
6 typeB nameC
7 typeC nameB

我想要这样的东西:

[{"typePr":"typeA","nameA":"1","nameB":"2"}, {"typePr":"typeB","nameC":"2","nameA" :"1"} , {"typePr":"typeC","nameB":"1"} ]

有没有可能做到这一点?

【问题讨论】:

  • 编辑并揭示真正的问题。
  • 我很抱歉,我做到了,但我不知道它是否可行......
  • 你是在这里使用 PHP 还是直接使用 MySQL?
  • 我用的是php,格式没那么重要我想我首先需要的是如何得到需要的结果,对吧?

标签: mysql sql group-by count


【解决方案1】:

这里你想要的一般查询使用GROUP BY

SELECT age, SUM(gender = 'F') AS countF, SUM(gender = 'H') AS countH
FROM yourTable
GROUP BY age;

至于将结果集转换为 JSON,您可以尝试从 MySQL 执行此操作,但更常见的是您会从表示层(例如 PHP)处理此操作。

【讨论】:

  • 谢谢!有没有办法用另一个可以从列中查找不同值的方法替换 'SUM(gender = 'F')' 和 'SUM(gender = 'H')' ,我的意思是我不只使用这个对于 H 和 F,请 ..
  • gender 列中有多少不同的不同值?
  • 我并没有将其用于性别列,实际上我不知道有多少不同的值,因为我将其用于基于用户选择的列的自定义仪表板,
  • 那你问错问题了。我们需要其他方法。
猜你喜欢
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 1970-01-01
  • 2023-03-08
  • 2014-07-31
相关资源
最近更新 更多