我想列出所有的销售额,并按天对总数进行分组。
Sales (saleID INT, amount INT, created DATETIME)
注意:我使用的是SQL Server 2005。
发布于 2009-11-02 05:22:30
如果您正在使用SQL Server,
dateadd(DAY,0, datediff(day,0, created))
将返回创建的日期
例如,如果销售创建于'2009-11-02 06:12:55.000',则dateadd(DAY,0, datediff(day,0, created))
返回'2009-11-02 00:00:00.000‘
select sum(amount) as total, dateadd(DAY,0, datediff(day,0, created)) as created
from sales
group by dateadd(DAY,0, datediff(day,0, created))
发布于 2009-11-02 05:25:47
对于SQL Server:
GROUP BY datepart(year,datefield),
datepart(month,datefield),
datepart(day,datefield)
或更快(来自Q8-Coder):
GROUP BY dateadd(DAY,0, datediff(day,0, created))
对于MySQL:
GROUP BY year(datefield), month(datefield), day(datefield)
或者更好(来自Jon Bright):
GROUP BY date(datefield)
对于Oracle:
GROUP BY to_char(datefield, 'yyyy-mm-dd')
或更快(来自IronGoofy):
GROUP BY trunc(created);
For Informix ( Jonathan Leffler撰写):
GROUP BY date_column
GROUP BY EXTEND(datetime_column, YEAR TO DAY)
发布于 2009-11-02 05:23:39
如果您使用的是MySQL:
SELECT
DATE(created) AS saledate,
SUM(amount)
FROM
Sales
GROUP BY
saledate
如果您使用的是MS SQL 2008:
SELECT
CAST(created AS date) AS saledate,
SUM(amount)
FROM
Sales
GROUP BY
CAST(created AS date)
https://stackoverflow.com/questions/1658340
复制相似问题