2017-04-07 5 views
1

Je souhaite créer une colonne calculée pour afficher la fin de l'action de temps regroupée par [ID cas], [Stade] et [Action]. L'ordre de la scène n'est pas nécessairement alphabétique et il pourrait être dupliqué. Dire après [étape] 'C', nous pourrions avoir une autre [étape] 'c' à l'avenirspotfire- comment créer une colonne pour calculer l'heure de l'étape suivante

Merci,

enter image description here

+0

donc ce qui déterminerait la prochaine fois? Les données sont-elles triées avant l'importation, donc l'application d'un tri personnalisé est-elle inutile? Ces types de données sont-ils vraiment des caractères? – scsimon

+1

merci de répondre! 1) La prochaine fois sera juste l'heure de la prochaine étape. Par exemple, la prochaine fois pour l'heure a est l'étape b parce que l'étape B vient après l'étape A. 2) Ce serait bien si vous pouvez fournir la méthode pour trier les données par le temps. 3) les types de données sont «date et heure», les caractères sont juste un symbole pour simplifier. –

+0

Merci @BenWang. Pouvez-vous fournir un échantillon de données plus réaliste/réel? Les types de données sont très importants dans ce cas, donc les méthodes utilisées pour ces données de test ne fonctionneraient pas sur vos données réelles. À votre santé. – scsimon

Répondre

1

Merci pour les données de test mises à jour. Les types de données sont extrêmement important lors de la demande. En outre, les données de test doivent refléter les données réelles aussi près que possible, sinon les solutions ne seront souvent pas mises à l'échelle. Par exemple, dans les données de test, les valeurs sont uniquement temporelles. Le tri à l'heure ne prend pas en compte le jour, donc tout est traité de manière égale. Puisque ces valeurs sont en réalité DateTime, j'ai ajouté cela aux données de test. Ces expressions vous donneront les résultats attendus identifiés dans votre question.

  1. Rank([Time_Action_Begin],"asc",[Case ID]) as [Rank]
  2. Min([Time_Action_Begin]) OVER (Intersect([Case ID],Next([Rank])))

RÉSULTATS

+---------+-------+----------+------------------------+------------------------+------+ 
| Case ID | Stage | Action | Time_Action_Begin | Time_Action_End  | Rank | 
+---------+-------+----------+------------------------+------------------------+------+ 
|  1 | A  | approve | 01/01/2016 11:30:00 PM | 01/02/2016 12:30:00 AM | 1 | 
|  1 | A  | approve | 01/01/2016 11:30:00 PM | 01/02/2016 12:30:00 AM | 1 | 
|  1 | B  | approve | 01/02/2016 12:30:00 AM | 01/02/2016 1:30:00 AM | 3 | 
|  1 | B  | approve | 01/02/2016 12:30:00 AM | 01/02/2016 1:30:00 AM | 3 | 
|  1 | C  | approve | 01/02/2016 1:30:00 AM | 01/02/2016 2:30:00 AM | 5 | 
|  1 | C  | approve | 01/02/2016 1:30:00 AM | 01/02/2016 2:30:00 AM | 5 | 
|  1 | D  | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 7 | 
|  1 | D  | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 7 | 
|  1 | E  | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 9 | 
|  1 | E  | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 9 | 
|  1 | F  | complete | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 11 | 
|  1 | F  | complete | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 11 | 
|  1 | C  | approve | 01/02/2016 5:30:00 AM |      | 13 | 
|  1 | C  | approve | 01/02/2016 5:30:00 AM |      | 13 | 
|  2 | A  | approve | 01/01/2016 10:30:00 PM | 01/02/2016 12:30:00 AM | 1 | 
|  2 | A  | approve | 01/01/2016 10:30:00 PM | 01/02/2016 12:30:00 AM | 1 | 
|  2 | B  | approve | 01/02/2016 12:30:00 AM | 01/02/2016 2:30:00 AM | 3 | 
|  2 | B  | approve | 01/02/2016 12:30:00 AM | 01/02/2016 2:30:00 AM | 3 | 
|  2 | C  | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 5 | 
|  2 | C  | approve | 01/02/2016 2:30:00 AM | 01/02/2016 3:30:00 AM | 5 | 
|  2 | D  | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 7 | 
|  2 | D  | approve | 01/02/2016 3:30:00 AM | 01/02/2016 4:30:00 AM | 7 | 
|  2 | E  | approve | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 9 | 
|  2 | E  | approve | 01/02/2016 4:30:00 AM | 01/02/2016 5:30:00 AM | 9 | 
|  2 | F  | complete | 01/02/2016 5:30:00 AM | 01/02/2016 6:30:00 AM | 11 | 
|  2 | F  | complete | 01/02/2016 5:30:00 AM | 01/02/2016 6:30:00 AM | 11 | 
|  2 | C  | approve | 01/02/2016 6:30:00 AM |      | 13 | 
|  2 | C  | approve | 01/02/2016 6:30:00 AM |      | 13 | 
+---------+-------+----------+------------------------+------------------------+------+ 
+0

est là de toute façon pour prendre [identification de cas] en compte? Je veux que l'expression soit spécifiée pour chaque identifiant de cas. J'ai essayé Min ([Time_Action_Begin]) OVER intersection (NextPeriod ([Time_Action_Begin]), [case id]). Cependant, cela ne me donne pas ce que je veux. –

+0

@BenWang C'est pourquoi il est important de fournir de nombreuses données de test et les résultats attendus. Voir la mise à jour – scsimon

+1

merci pour votre réponse. Je garderai cela à l'esprit lors de ma prochaine publication. Pouvez-vous s'il vous plaît expliquer un peu à propos de la méthode next() que vous utilisez? –