【问题标题】:How to get count on a separte column?如何计算单独的列?
【发布时间】:2020-11-24 12:24:36
【问题描述】:

我有下表,我想在单独的列中获取具有相同产品名称的项目的数量

这是桌子

+-----------+-------------+-------+------+
| ProductID | ProductName | Price | URL  |
+-----------+-------------+-------+------+
|         1 | Book        | 2     | url1 |
|         2 | Pen         | 1     | url2 |
|         3 | pencil      | 0.5   | url3 |
|         4 | Book        | 2     | url1 |
+-----------+-------------+-------+------+

我想从表格中得到以下信息

+-----------+-------------+-------+------+-------+
| ProductID | ProductName | Price | URL  | Count |
+-----------+-------------+-------+------+-------+
|         1 | Book        | 2     | url1 |     2 |
|         2 | Pen         | 1     | url2 |     1 |
|         3 | pencil      | 0.5   | url3 |     1 |
+-----------+-------------+-------+------+-------+

我需要这个的原因是因为项目需要在外部应用程序上呈现计数。我不知道如何获得另一列的计数。

【问题讨论】:

  • 你想要哪一行?

标签: mysql sql sqlite


【解决方案1】:

这看起来像聚合:

select min(ProductID) as ProductID, ProductName, Price, URL, COUNT(*)
from t
group by ProductName, Price, URL;

【讨论】:

  • 再问一个问题。也可以合计价格吗?对于重复的产品?
  • @罗伯特。 . . SUM(price).
  • 谢谢..我认为这会带来问题,因为列本身是 varchar 并且无法求和
  • @罗伯特。 . .您的数据模型有问题。您可以尝试再问一个问题。
【解决方案2】:
SELECT ProductID
       ,ProductName
       ,Price
       ,URL
       ,COUNT(ProductName) AS CountProduct
FROM products 
GROUP BY ProductName

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多