【问题标题】:count records and display with Special field统计记录并使用特殊字段显示
【发布时间】:2018-04-13 20:38:00
【问题描述】:
ID  case    date    time
----------------------------------
101  A      2001    1
101  A      2002    2
102  A      2001    1
103  B      2001    1
101  B      2003    1
101  A      2004    3
102  C      2006    1
101  B      2007    2
103  C      2007    1

什么是 sql 查询

对于 ID,计算每个案例并仅显示时间 1 的日期。

示例: ID=101 的输出:

ID  case    date    qty
-------------------------------------
101  A      2001    3
101  B      2003    2

请指导我。

【问题讨论】:

  • 你为什么要为 ID 101 写 2001。为什么不写其他日期。因为案例 'A' 的 101 有多个日期值
  • 因为 2001 年的日期具有时间值 1。
  • 你尝试了什么作为查询?

标签: sql count


【解决方案1】:

以下查询基于您的示例输出。 你可以试试这个

SELECT id, case, date, count(time) as qty
FROM table
WHERE id = 101
GROUP BY id, case, date

【讨论】:

  • 数量不是表格字段
  • 是的,根据上述查询,时间总和将显示为“qty” qty 是 sum(time) 的别名
  • 我想现在这个查询应该可以工作了。如果是,请点赞。谢谢
【解决方案2】:

我想你想要:

SELECT id, case, count(*) as qty, max(case when time = 1 then date end) as date
FROM table
WHERE id = 101
GROUP BY id, case

【讨论】:

    【解决方案3】:

    感谢萨斯的帮助。我找到了答案。

    select id, case, min(time), count(*) as qty
    from table
    group by id, case
    having id=101
    

    【讨论】:

    • 使用 where = 101 where 子句来限制行。并有限制组的条款
    猜你喜欢
    • 1970-01-01
    • 2018-09-08
    • 1970-01-01
    • 2012-06-20
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多