2016-07-21 10 views
0

次のような表があります。私はClusterDriveNumber(またはCluster + Date + DriveNumberに基づいて増やす必要がありNumberという名前の列を追加したい:別の列に基づいて値が増加する列を追加する方法

Cluster   Cluster + Sub-cluster DriveNumbe Date 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   12/9/2015 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   12/9/2015 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   1/4/2016 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   1/4/2016 
L700_NEDCC41 L700_NEDCC41   1+2+3  12/9/2015 
L700_NEDCC41 L700_NEDCC41   1+2+3  16/11/2015 
L700_NEDCC41 L700_NEDCC41   1+2+3  09/12/2016 

所望の出力は次のようになります。

Cluster   Cluster + Sub-cluster DriveNumbe Date  Number 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   12/9/2015 1 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   12/9/2015 1 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   1/4/2016 2 
GCR_OPT_WELAC01 GCR_OPT_WELAC01   1+2   1/4/2016 2 
L700_NEDCC41 L700_NEDCC41   1+2+3  12/9/2015 1 
L700_NEDCC41 L700_NEDCC41   1+2+3  16/11/2015 2 
L700_NEDCC41 L700_NEDCC41   1+2+3  09/12/2016 2 
+2

を使用しているデータベースとのあなたの質問にタグを付けます。 –

答えて

0

あなたはANSIを使用してこれを行うことができますSQLウィンドウ関数dense_rank()

select t.*, 
     dense_rank() over (partition by cluster, drivenumber order by date) as number 
from t; 

MySQLはこれらの機能をサポートしていません。代わりに、あなたが行うことができます:

select t.*, 
     (select count(distinct t2.date) 
     from t t2 
     where t2.cluster = t.cluster and t2.drivenumber = t.drivenumber and 
       t2.date <= t.date 
     ) as number 
from t; 
+0

は同じ機能ですmysqlで利用可能です – user2503377

+0

ありがとう私は希望の結果を得ています。 – user2503377

+0

以下のクエリで同じ結果が得られます – user2503377

0
set @pk1 =''; 
set @rn1 =1; 
set @sal =''; 
set @val =1; 

SELECT dept_id, 
    salary, 
    denseRank 
FROM 
(
SELECT dept_id, 
     salary, 
     @rn1 := if(@pk1=dept_id, if(@sal=salary, @rn1, @[email protected]),1) as  denseRank, 
     @val := if(@pk1=dept_id, if(@sal=salary, @val+1, 1),1) as value, 
     @pk1 := dept_id, 
     @sal := salary  
    FROM 
(
    SELECT dept_id, 
     salary 
FROM emp 
ORDER BY dept_id,salary 
) A 
) B; 
+0

これは危険なコードです。 'select'中の式が順番に評価されると仮定します。これは保証されているわけではありませんが、MySQLは実際には(時には)順不同の式を評価します。 –

関連する問題