SQL脚本-查找最新金额和总计

时间:2018-12-05 16:53:05

标签: sql

有一个我正在苦苦挣扎的SQL表。尝试了几种方法。

基本上,我有按客户名称列出的订单列表。数百万条记录(这是数据库的完整导出;我知道有更好的方法,但这是我能够获取数据的唯一格式)

格式如下:

CustomerName  Date                    Amount
ABC           2018-01-08 11:05 PM     $0.15
ABC           2018-01-15 12:45 PM     $5.11
DEF           2017-03-03 5:28 PM      $15.89
GHI           2015-05-09 9:42 AM      $0.82
ABC           2018-09-16 9:30 AM      $9.15
JKL           2018-03-09 10:14 PM     $5.26
MNO           2018-06-12 2:09 AM      $0.92
JKL           2018-11-30 3:05 AM      $62.77
DEF           2017-03-11 4:19 PM      $10.62

基本上,我想获取每个唯一客户的列表(按NAME),然后列出第一个订单的日期,最后一个订单的日期以及他们与我们共花费的总金额

示例:

Customer     First Order      Last Order      Total
ABC          2018-01-08       2018-09-16      $14.41
DEF          2017-03-03       2017-03-11      $26.51

因此,我能够通过手动将数据导出到Excel,然后使用vlookups来做到这一点,但是由于存在数百万行数据,所以很难,因此我必须基本上分别查找每个“列”(第一个,最后一个,总和等)

编辑:我意识到为什么这么难。我是SQL的新手,但显然日期不是正确的字段类型。因此我可以看到日期,但无法对其进行排序或汇总。
我最终不得不导出表,然后重新导入它,为日期选择正确的字段类型。

2 个答案:

答案 0 :(得分:2)

很简单。

SELECT MIN(date) as First Date, MAX(date) as Last Order, SUM(amount) as Total
From table 
GROUP BY Customer

答案 1 :(得分:2)

使用如下所示的聚合函数

select customer, min(date) as fisrt_order,max(date) last_order,
sum(amount) as Total from table_name
group by customer