【问题标题】:How do I sum then group by in a subquery?如何在子查询中求和然后分组?
【发布时间】:2021-09-16 08:51:44
【问题描述】:

我有以下

SELECT
ticketNum, 
name,
id,
created

打印出来的

ticketNum name id created
abc andy 1 2021-07-02 10:58:54.476 UTC
abc bob 1 2021-07-02 10:58:54.476 UTC
abc andy 1 2021-07-02 10:58:54.476 UTC
abc charlie 1 2021-07-02 10:58:54.476 UTC

我想返回每个人和每一天的ticketNum总和所以想要的结果:

Name Sum of TicketNum Date
andy 2 2021-07-02
bob 1 2021-07-02
charlie 1 2021-07-02

我想我可能会从以下内容开始,但我认为我的理解不正确。

SELECT 
name,
(SELECT
    COUNT(DISTINCT ticketNum)
    FROM mytable
    WHERE name = name
)

【问题讨论】:

  • 提示:GROUP BY。你试过吗?

标签: sql group-by count subquery


【解决方案1】:

你可以试试

架构 (MySQL v8.0)

CREATE TABLE my_table (
  `ticketNum` VARCHAR(3),
  `name` VARCHAR(7),
  `id` INTEGER,
  `created` DATETIME
);

INSERT INTO my_table
  (`ticketNum`, `name`, `id`, `created`)
VALUES
  ('abc', 'andy', '1', '2021-07-02 10:58:54.476'),
  ('abc', 'bob', '1', '2021-07-02 10:58:54.476'),
  ('abc', 'andy', '1', '2021-07-02 10:58:54.476'),
  ('abc', 'charlie', '1', '2021-07-02 10:58:54.476');

查询 #1

SELECT
    name Name,
    COUNT(ticketNum) 'Sum of TicketNum',
    MAX(created) as Date
FROM
    my_table
GROUP BY
    name;
Name Sum of TicketNum Date
andy 2 2021-07-02 10:58:54
bob 1 2021-07-02 10:58:54
charlie 1 2021-07-02 10:58:54

View on DB Fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    相关资源
    最近更新 更多