SQL如何使用条件计算子集
我有下表:SQL如何使用条件计算子集,sql,Sql,我有下表: +--------+------------+----------------+ | saleId | saleDate | contractId | +--------+------------+----------------+ | 1 | 01.07.2016 | 1001 | | 2 | 02.07.2016 | 1001 | | 3 | 03.07.2016 | 1002
+--------+------------+----------------+
| saleId | saleDate | contractId |
+--------+------------+----------------+
| 1 | 01.07.2016 | 1001 |
| 2 | 02.07.2016 | 1001 |
| 3 | 03.07.2016 | 1002 |
| 4 | 04.07.2016 | 1002 |
| 5 | 05.07.2016 | 1001 |
| 6 | 06.07.2016 | 1001 |
+--------+------------+----------------+
我想计算每一笔销售(每一行)的Previous销售合同数量
,你的答案总是很简单,很有效率。这对我很有用。这是个好主意!谢谢。你的回答总是非常简单和有效。这对我很有用。这是个好主意!谢谢
+--------+------------+------------+------------------------+
| saleId | saleDate | contractId | SalesCountPerContract |
+--------+------------+------------+------------------------+
| 1 | 01.07.2016 | 1001 | 0 |
| 2 | 02.07.2016 | 1001 | 1 |
| 3 | 03.07.2016 | 1002 | 0 |
| 4 | 04.07.2016 | 1002 | 1 |
| 5 | 05.07.2016 | 1001 | 2 |
| 6 | 06.07.2016 | 1001 | 3 |
+--------+------------+------------+------------------------+
select t.*
,row_number() over
(partition by contractId order by saleDate) - 1 as SalesCountPerContract
from mytable t