我正在try 运行一个简单的查询来按星期几计算销售额总和,唯一的问题是Date列的格式是Date Time,不允许我简单地按日期分组.我正在使用的查询:

CREATE TABLE Sales (
    Date datetime,
    Sales decimal(18,2)
);

INSERT INTO Sales(Date, Sales)
VALUES
('2023-03-30 14:47:36.270', 6.66),
('2023-03-30 19:26:16.223', 7.18);

SELECT 
    DATEPART(dw, Date) AS WeekDays,
    SUM(Sales) AS Total_Sales
FROM Sales
GROUP BY Date;

目前的结果是:

weekdays total
5 6.66
5 7.18

-你想要什么?

weekdays total
5 13.84

使用DATETIME的DBFIDDLE示例:https://dbfiddle.uk/6Pw82lJC

不带DATETIME的DBFIDLE示例:https://dbfiddle.uk/ZRTZjh70

推荐答案

你只需要 Select 和你 Select 的相同的东西,因为Date实际上是DateTime,并且包含一个时间成分,例如.

SELECT 
    DATEPART(weekday, Date) AS WeekDays
    , SUM(sales) AS Total_Sales
FROM Sales
GROUP BY DATEPART(weekday, date);

帮你自己一个忙,不要使用日期部分的缩写形式(例如dw).为了几个字母,让它超级清楚你在做什么.

Sql相关问答推荐

在SQL Server中使用LEFT连接包含特定记录

MariaDB查询在逗号分隔的字符串中查找多个值

在数据库中搜索列

OVER子句WITH PARTITION BY和ORDER BY忽略主查询的WHERE子句

从数据库中查找总和大于或等于查询中的数字的数字

从包含PostgreSQL中的JSON值的列中提取列表或目录

在xml.Modify方法中使用子字符串和可能的替代方法

以一致的价值获得独特的价值

Haystack针相交-在元素最多的Haystack中查找集合

使用长 IN 子句的 SQL 优化

如何对 jsonb 中的字段执行求和,然后使用结果过滤查询的输出

如何在 case 语句中使用聚合?

在Snowflake中,如何将以逗号和连字符分隔的多个混合数值拆分成数字列表

达到特定值时,从0开始累加求和

更新之前如何获得价值

如何通过CROSS APPLY获取多级嵌套JSON属性的值?

HIVE SQL where 子句未按预期工作

将有效数字作为 varchar 返回的 SQL 函数

如何跨行合并以删除 SQL 中的空值?

从多个连接返回 1 行到同一个表 - SQL Server