Juste quelque chose d'intéressant vient dans mon esprit. Supposons que nous avons une table (dans SQL Server) comme ceci:Trouvez la période de survitesse?
- Lieu
- Vitesse
- temps
par exemple:
Location Velocity Time
1 40 1:20
2 35 2:00
3 45 2:05
4 50 2:30
5 60 2:45
6 48 2:55
7 40 3:00
8 35 3:15
9 50 3:20
10 70 3:30
11 50 3:35
12 40 3:40
On suppose que la barrière de vitesse est 40kph, la sortie est quelque chose comme ça
Quelle est la meilleure façon de déterminer les périodes de dépassement de vitesse (la barrière de vitesse est définie)?Starttime Endtime
2:05 3:00
3:20 3:35
Quelle est la meilleure façon de déterminer les périodes de survitesse? Ma première idée était de charger la table dans un tableau, puis itérer sur tableau pour trouver ces périodes:
(Pseudo code C#)
bool isOverSpeed = false;
for (int i =0;i<arr.Length;i++)
{
if (!isOverSpeed)
if (arr[i].Velocity > speedBarrier)
{
#insert the first record into another array.
isOverSpeed = true;
}
if(isOverSpeed)
if (arr[i].Velocity < speedBarrier)
{
#insert the record into that array
isOverSpeed = false;
}
}
Il fonctionne, mais un peu « pas très efficace ». Existe-t-il un moyen plus "intelligent", comme une requête T-SQL ou un autre algorithme pour le faire?
Le point est que vous voulez agréger les temps de 'Velocity> speedBarrier', comme' TimeSpan'-s? Ce n'est pas très clair. Quelle sortie attendez-vous? – Kobi
La sortie que je m'attends à ce que la voiture passe de «quand» à «quand», non seulement TimeSpan – Vimvq1987
Quel est votre modèle de variation de la vitesse du véhicule dans le temps? –