m**********2 发帖数: 2252 | 1 有个table,有3个columns。一个是客户ID,一个orderID,一个orderdate。每一个
order就有一个orderID。比如客户ID 500,会有orderID 201,302,809. 客户ID 600
,会有orderID 211,298,344。
现在我想在这个table加一个column,ordersequenceID,比如客户ID 500,根据
orderID的大小,如果orderID是201,就是1,orderID是302,就是2,orderID是809,就
是3. 同样,比如比如客户ID 600,根据orderID的大小,如果orderID是211,就是1,
orderID是298,就是2,orderID是344,就是3。
这个应该怎样做?
谢谢。 |
B*****g 发帖数: 34098 | 2 very very bad design, do not do that
600
【在 m**********2 的大作中提到】 : 有个table,有3个columns。一个是客户ID,一个orderID,一个orderdate。每一个 : order就有一个orderID。比如客户ID 500,会有orderID 201,302,809. 客户ID 600 : ,会有orderID 211,298,344。 : 现在我想在这个table加一个column,ordersequenceID,比如客户ID 500,根据 : orderID的大小,如果orderID是201,就是1,orderID是302,就是2,orderID是809,就 : 是3. 同样,比如比如客户ID 600,根据orderID的大小,如果orderID是211,就是1, : orderID是298,就是2,orderID是344,就是3。 : 这个应该怎样做? : 谢谢。
|
gy 发帖数: 620 | 3 Strongly stupport BEIJIN.
BTW, 你为啥要那么设计呢?
【在 B*****g 的大作中提到】 : very very bad design, do not do that : : 600
|
m**********2 发帖数: 2252 | 4 哦。不是我要设计。。
我们marketing就想知道,一个客户从第一个order到第二个order大概隔多少时间,从
第二个order到第三个order大概隔多少时间。。
这个就是临时计算一下。不是在设计里的。
有没有办法算一下?用cursor?
【在 gy 的大作中提到】 : Strongly stupport BEIJIN. : BTW, 你为啥要那么设计呢?
|
m**********2 发帖数: 2252 | 5 Beijing给说说为啥这个design very ver bad?
【在 B*****g 的大作中提到】 : very very bad design, do not do that : : 600
|
B*****g 发帖数: 34098 | 6 SELECT id, orderdate, ROW_NUMBER OVER (PARTITION BY id ORDER BY orderdate) A
S ordersequenceID FROM table
【在 m**********2 的大作中提到】 : 哦。不是我要设计。。 : 我们marketing就想知道,一个客户从第一个order到第二个order大概隔多少时间,从 : 第二个order到第三个order大概隔多少时间。。 : 这个就是临时计算一下。不是在设计里的。 : 有没有办法算一下?用cursor?
|
m**********2 发帖数: 2252 | 7 牛! 谢了!
A
【在 B*****g 的大作中提到】 : SELECT id, orderdate, ROW_NUMBER OVER (PARTITION BY id ORDER BY orderdate) A : S ordersequenceID FROM table
|
j*****n 发帖数: 1781 | 8 hehe, see it again....
A
【在 B*****g 的大作中提到】 : SELECT id, orderdate, ROW_NUMBER OVER (PARTITION BY id ORDER BY orderdate) A : S ordersequenceID FROM table
|
B*****g 发帖数: 34098 | 9 有包子吗?
orderdate)
【在 j*****n 的大作中提到】 : hehe, see it again.... : : A
|
c**t 发帖数: 2744 | 10 这么简单居然要包子
【在 B*****g 的大作中提到】 : 有包子吗? : : orderdate)
|
|
|
B*****g 发帖数: 34098 | 11 不到1小时按1小时收钱
【在 c**t 的大作中提到】 : 这么简单居然要包子
|
b*****e 发帖数: 364 | 12 SELECT a.ID, a.ORDERID, MIN(a.orderdate-b.orderdate) as DateDifference,
COUNT(b.orderID)+1 as OrderSequence
FROM Table a
JOIN Table b
ON a.ID=b.ID
WHERE a.orderdate>b.orderDate
GROUP BY a.ID, a.ORDERID; |
Z*****l 发帖数: 14069 | 13 这个太高深莫测了。
假设table只有一行数据,这个WHERE使得什么也不出来。
假设table有两行或N行date相同的数据,这个WHERE还是使得什么也不出来。
【在 b*****e 的大作中提到】 : SELECT a.ID, a.ORDERID, MIN(a.orderdate-b.orderdate) as DateDifference, : COUNT(b.orderID)+1 as OrderSequence : FROM Table a : JOIN Table b : ON a.ID=b.ID : WHERE a.orderdate>b.orderDate : GROUP BY a.ID, a.ORDERID;
|
B*****g 发帖数: 34098 | 14 要厚道
【在 Z*****l 的大作中提到】 : 这个太高深莫测了。 : 假设table只有一行数据,这个WHERE使得什么也不出来。 : 假设table有两行或N行date相同的数据,这个WHERE还是使得什么也不出来。
|
Z*****l 发帖数: 14069 | 15 sorry,失言了。
【在 B*****g 的大作中提到】 : 要厚道
|