首页 > 解决方案 > 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

基本上,我正在尝试获取每个唯一客户的列表(按名称),然后是第一个订单的日期、最后一个订单的日期以及他们在我们这里花费的总金额

例子:

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

ETC

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

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

标签: sql

解决方案


这很简单。

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

推荐阅读