bug5451: i.a. +windward dist, leg type

This commit is contained in:
Sebastian Kamp
2021-10-08 07:55:29 +00:00
parent 0259bc1912
commit 844201cfd3
3 changed files with 592 additions and 250 deletions
+122 -44
View File
@@ -16,6 +16,9 @@
<DataSource id="FinalLeg$$$$LegStats$$">
<resourceUri>LegStats</resourceUri>
</DataSource>
<DataSource id="Leg">
<resourceUri>Leg</resourceUri>
</DataSource>
</dataSources>
<calculationViews>
<calculationView xsi:type="Calculation:ProjectionView" id="LegStatsProjection">
@@ -100,6 +103,18 @@
</rankThreshold>
</rankingFilter>
</calculationView>
<calculationView xsi:type="Calculation:ProjectionView" id="LegProjection">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="race"/>
<viewAttribute id="legNumber"/>
<viewAttribute id="type"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="Leg">
<mapping xsi:type="Calculation:AttributeMapping" target="legNumber" source="number"/>
</input>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="LegStatsCompetitorJoin_1" cardinality="CN_1" joinType="inner" multiJoinNode="LegStatsCompetitorJoin" multiJoinCentralTable="CompetitorProjection" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="regatta"/>
@@ -116,7 +131,7 @@
<viewAttribute id="numberOfPenaltyCircles" aggregationType="sum"/>
<viewAttribute id="avgVelocityMadeGoodInKnots" aggregationType="sum"/>
<viewAttribute id="legGapToLeaderInSeconds" aggregationType="sum"/>
<viewAttribute id="finalGapToLeaderInSeconds" aggregationType="sum"/>
<viewAttribute id="legType"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="LegStatsProjection">
@@ -135,6 +150,53 @@
<mapping xsi:type="Calculation:AttributeMapping" target="avgVelocityMadeGoodInKnots" source="avgVelocityMadeGoodInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legGapToLeaderInSeconds" source="legGapToLeaderInSeconds"/>
</input>
<input node="LegProjection">
<mapping xsi:type="Calculation:AttributeMapping" target="legType" source="type"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="race" source="race"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legNumber" source="legNumber"/>
</input>
<joinAttribute name="regatta"/>
<joinAttribute name="race"/>
<joinAttribute name="legNumber"/>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="LegStatsCompetitorJoin_2" cardinality="CN_1" joinType="inner" multiJoinNode="LegStatsCompetitorJoin" multiJoinCentralTable="CompetitorProjection" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="race"/>
<viewAttribute id="legNumber" aggregationType="sum"/>
<viewAttribute id="competitorId"/>
<viewAttribute id="legRankOneBased" aggregationType="sum"/>
<viewAttribute id="distanceSailedInMeters" aggregationType="sum"/>
<viewAttribute id="elapsedTimeInSeconds" aggregationType="sum"/>
<viewAttribute id="avgCrossTrackErrorInMeters" aggregationType="sum"/>
<viewAttribute id="absoluteAvgCrossTrackErrorInMeters" aggregationType="sum"/>
<viewAttribute id="numberOfTacks" aggregationType="sum"/>
<viewAttribute id="numberOfGybes" aggregationType="sum"/>
<viewAttribute id="numberOfPenaltyCircles" aggregationType="sum"/>
<viewAttribute id="avgVelocityMadeGoodInKnots" aggregationType="sum"/>
<viewAttribute id="legGapToLeaderInSeconds" aggregationType="sum"/>
<viewAttribute id="finalGapToLeaderInSeconds" aggregationType="sum"/>
<viewAttribute id="legType"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="LegStatsCompetitorJoin_1">
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="race" source="race"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legNumber" source="legNumber"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legRankOneBased" source="legRankOneBased"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceSailedInMeters" source="distanceSailedInMeters"/>
<mapping xsi:type="Calculation:AttributeMapping" target="elapsedTimeInSeconds" source="elapsedTimeInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="avgCrossTrackErrorInMeters" source="avgCrossTrackErrorInMeters"/>
<mapping xsi:type="Calculation:AttributeMapping" target="absoluteAvgCrossTrackErrorInMeters" source="absoluteAvgCrossTrackErrorInMeters"/>
<mapping xsi:type="Calculation:AttributeMapping" target="numberOfTacks" source="numberOfTacks"/>
<mapping xsi:type="Calculation:AttributeMapping" target="numberOfGybes" source="numberOfGybes"/>
<mapping xsi:type="Calculation:AttributeMapping" target="numberOfPenaltyCircles" source="numberOfPenaltyCircles"/>
<mapping xsi:type="Calculation:AttributeMapping" target="avgVelocityMadeGoodInKnots" source="avgVelocityMadeGoodInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legGapToLeaderInSeconds" source="legGapToLeaderInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legType" source="legType"/>
</input>
<input node="FinalLeg">
<mapping xsi:type="Calculation:AttributeMapping" target="finalGapToLeaderInSeconds" source="gapToLeaderInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
@@ -145,7 +207,7 @@
<joinAttribute name="race"/>
<joinAttribute name="competitorId"/>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="LegStatsCompetitorJoin_2" cardinality="CN_1" joinType="leftOuter" multiJoinNode="LegStatsCompetitorJoin" multiJoinCentralTable="CompetitorProjection" multiJoinOrder="Outside In">
<calculationView xsi:type="Calculation:JoinView" id="LegStatsCompetitorJoin_3" cardinality="CN_1" joinType="leftOuter" multiJoinNode="LegStatsCompetitorJoin" multiJoinCentralTable="CompetitorProjection" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="race"/>
@@ -166,9 +228,10 @@
<viewAttribute id="firstMarkGapToLeaderInSeconds" aggregationType="sum"/>
<viewAttribute id="firstMarkDistanceSailedInMeters" aggregationType="sum"/>
<viewAttribute id="firstMarkElapsedTimeInSeconds" aggregationType="sum"/>
<viewAttribute id="legType"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="LegStatsCompetitorJoin_1">
<input node="LegStatsCompetitorJoin_2">
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="race" source="race"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legNumber" source="legNumber"/>
@@ -184,6 +247,7 @@
<mapping xsi:type="Calculation:AttributeMapping" target="avgVelocityMadeGoodInKnots" source="avgVelocityMadeGoodInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legGapToLeaderInSeconds" source="legGapToLeaderInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="finalGapToLeaderInSeconds" source="finalGapToLeaderInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legType" source="legType"/>
</input>
<input node="FirstLeg">
<mapping xsi:type="Calculation:AttributeMapping" target="firstMarkRankOneBased" source="firstMarkRankOneBased"/>
@@ -198,7 +262,7 @@
<joinAttribute name="race"/>
<joinAttribute name="competitorId"/>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="LegStatsCompetitorJoin_3" cardinality="C1_1" joinType="inner" multiJoinNode="LegStatsCompetitorJoin" multiJoinCentralTable="CompetitorProjection" multiJoinOrder="Outside In">
<calculationView xsi:type="Calculation:JoinView" id="LegStatsCompetitorJoin_4" cardinality="CN_1" joinType="inner" multiJoinNode="LegStatsCompetitorJoin" multiJoinCentralTable="CompetitorProjection" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="race"/>
@@ -223,17 +287,10 @@
<viewAttribute id="shortName"/>
<viewAttribute id="nationality"/>
<viewAttribute id="sailNumber"/>
<viewAttribute hidden="true" id="JOIN$id$competitorId"/>
<viewAttribute id="legType"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="CompetitorProjection">
<mapping xsi:type="Calculation:AttributeMapping" target="competitorName" source="competitorName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="shortName" source="shortName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="nationality" source="nationality"/>
<mapping xsi:type="Calculation:AttributeMapping" target="sailNumber" source="sailNumber"/>
<mapping xsi:type="Calculation:AttributeMapping" target="JOIN$id$competitorId" source="id"/>
</input>
<input node="LegStatsCompetitorJoin_2">
<input node="LegStatsCompetitorJoin_3">
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="race" source="race"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legNumber" source="legNumber"/>
@@ -253,120 +310,132 @@
<mapping xsi:type="Calculation:AttributeMapping" target="firstMarkGapToLeaderInSeconds" source="firstMarkGapToLeaderInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="firstMarkDistanceSailedInMeters" source="firstMarkDistanceSailedInMeters"/>
<mapping xsi:type="Calculation:AttributeMapping" target="firstMarkElapsedTimeInSeconds" source="firstMarkElapsedTimeInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="JOIN$id$competitorId" source="competitorId"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legType" source="legType"/>
</input>
<joinAttribute name="JOIN$id$competitorId"/>
<input node="CompetitorProjection">
<mapping xsi:type="Calculation:AttributeMapping" target="competitorName" source="competitorName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="shortName" source="shortName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="nationality" source="nationality"/>
<mapping xsi:type="Calculation:AttributeMapping" target="sailNumber" source="sailNumber"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="id"/>
</input>
<joinAttribute name="competitorId"/>
</calculationView>
</calculationViews>
<logicalModel id="LegStatsCompetitorJoin_3">
<logicalModel id="LegStatsCompetitorJoin_4">
<attributes>
<attribute id="regatta" order="1" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="regatta"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="regatta"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="regatta"/>
</attribute>
<attribute id="race" order="2" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="race"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="race"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="race"/>
</attribute>
<attribute id="legNumber" order="3" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="legNumber"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="legNumber"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="legNumber"/>
</attribute>
<attribute id="competitorId" order="4" displayAttribute="false" attributeHierarchyActive="false" descriptionColumnName="competitorName">
<descriptions defaultDescription="competitorId"/>
<attributeRelationship parentAttribute="nationality" type="manual"/>
<attributeRelationship parentAttribute="sailNumber" type="manual"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="competitorId"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="competitorId"/>
</attribute>
<attribute id="competitorName" order="5" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="competitorName"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="competitorName"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="competitorName"/>
</attribute>
<attribute id="shortName" order="6" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="shortName"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="shortName"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="shortName"/>
</attribute>
<attribute id="nationality" order="7" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="nationality"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="nationality"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="nationality"/>
</attribute>
<attribute id="sailNumber" order="8" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="sailNumber"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="sailNumber"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="sailNumber"/>
</attribute>
<attribute id="legType" order="24" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="legType"/>
<keyMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="legType"/>
</attribute>
</attributes>
<calculatedAttributes/>
<baseMeasures>
<measure id="legRankOneBased" order="9" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="legRankOneBased"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="legRankOneBased"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="legRankOneBased"/>
</measure>
<measure id="distanceSailedInMeters" order="10" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="distanceSailedInMeters"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="distanceSailedInMeters"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="distanceSailedInMeters"/>
</measure>
<measure id="elapsedTimeInSeconds" order="11" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="elapsedTimeInSeconds"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="elapsedTimeInSeconds"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="elapsedTimeInSeconds"/>
</measure>
<measure id="avgCrossTrackErrorInMeters" order="12" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="avgCrossTrackErrorInMeters"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="avgCrossTrackErrorInMeters"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="avgCrossTrackErrorInMeters"/>
</measure>
<measure id="absoluteAvgCrossTrackErrorInMeters" order="13" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="absoluteAvgCrossTrackErrorInMeters"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="absoluteAvgCrossTrackErrorInMeters"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="absoluteAvgCrossTrackErrorInMeters"/>
</measure>
<measure id="numberOfTacks" order="14" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="numberOfTacks"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="numberOfTacks"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="numberOfTacks"/>
</measure>
<measure id="numberOfGybes" order="15" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="numberOfGybes"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="numberOfGybes"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="numberOfGybes"/>
</measure>
<measure id="numberOfPenaltyCircles" order="16" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="numberOfPenaltyCircles"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="numberOfPenaltyCircles"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="numberOfPenaltyCircles"/>
</measure>
<measure id="avgVMGInKnots" order="17" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="avgVelocityMadeGoodInKnots"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="avgVelocityMadeGoodInKnots"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="avgVelocityMadeGoodInKnots"/>
</measure>
<measure id="legGapToLeaderInSeconds" order="18" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="legGapToLeaderInSeconds"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="legGapToLeaderInSeconds"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="legGapToLeaderInSeconds"/>
</measure>
<measure id="firstMarkRankOneBased" order="19" aggregationType="min" measureType="simple">
<descriptions defaultDescription="firstMarkRankOneBased"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="firstMarkRankOneBased"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="firstMarkRankOneBased"/>
</measure>
<measure id="firstMarkGapToLeaderInSeconds" order="20" semanticType="quantity" aggregationType="min" measureType="quantity" presentationScale="1">
<descriptions defaultDescription="firstMarkGapToLeaderInSeconds"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="firstMarkGapToLeaderInSeconds"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="firstMarkGapToLeaderInSeconds"/>
</measure>
<measure id="firstMarkDistanceSailedInMeters" order="21" semanticType="quantity" aggregationType="min" measureType="quantity" presentationScale="1">
<descriptions defaultDescription="firstMarkDistanceSailedInMeters"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="firstMarkDistanceSailedInMeters"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="firstMarkDistanceSailedInMeters"/>
</measure>
<measure id="firstMarkElapsedTimeInSeconds" order="22" semanticType="quantity" aggregationType="min" measureType="quantity">
<descriptions defaultDescription="firstMarkElapsedTimeInSeconds"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="firstMarkElapsedTimeInSeconds"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="firstMarkElapsedTimeInSeconds"/>
</measure>
<measure id="finalGapToLeaderInSeconds" order="23" aggregationType="min" measureType="simple">
<descriptions defaultDescription="finalGapToLeaderInSeconds"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_3" columnName="finalGapToLeaderInSeconds"/>
<measureMapping columnObjectName="LegStatsCompetitorJoin_4" columnName="finalGapToLeaderInSeconds"/>
</measure>
</baseMeasures>
<calculatedMeasures/>
@@ -405,14 +474,14 @@
<upperLeftCorner x="276" y="237"/>
<rectangleSize height="30" width="212"/>
</shape>
<shape modelObjectName="CompetitorProjection" modelObjectNameSpace="LegStatsCompetitorJoin" modelObjectType="JoinNodeInput" multiJoinViewNodeName="LegStatsCompetitorJoin">
<upperLeftCorner x="20" y="30"/>
<rectangleSize width="186"/>
</shape>
<shape modelObjectName="FirstLeg" modelObjectNameSpace="LegStatsCompetitorJoin" modelObjectType="JoinNodeInput" multiJoinViewNodeName="LegStatsCompetitorJoin">
<upperLeftCorner x="737" y="30"/>
<rectangleSize width="246"/>
</shape>
<shape modelObjectName="CompetitorProjection" modelObjectNameSpace="LegStatsCompetitorJoin" modelObjectType="JoinNodeInput" multiJoinViewNodeName="LegStatsCompetitorJoin">
<upperLeftCorner x="20" y="30"/>
<rectangleSize width="186"/>
</shape>
<shape modelObjectName="LegStatsProjection" modelObjectNameSpace="LegStatsCompetitorJoin" modelObjectType="JoinNodeInput" multiJoinViewNodeName="LegStatsCompetitorJoin">
<upperLeftCorner x="320" y="30"/>
@@ -421,6 +490,15 @@
<shape modelObjectName="FinalLeg" modelObjectNameSpace="LegStatsCompetitorJoin" modelObjectType="JoinNodeInput" multiJoinViewNodeName="LegStatsCompetitorJoin">
<upperLeftCorner x="737" y="231"/>
<rectangleSize width="202"/>
</shape></shapes>
</shape>
<shape modelObjectName="LegProjection" modelObjectNameSpace="LegStatsCompetitorJoin" modelObjectType="JoinNodeInput" multiJoinViewNodeName="LegStatsCompetitorJoin">
<upperLeftCorner x="41" y="202"/>
<rectangleSize width="144.009765625"/>
</shape>
<shape expanded="true" modelObjectName="LegProjection" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="732" y="391"/>
<rectangleSize height="30" width="160"/>
</shape>
</shapes>
</layout>
</Calculation:scenario>
@@ -16,6 +16,9 @@
<DataSource id="Competitor">
<resourceUri>Competitor</resourceUri>
</DataSource>
<DataSource id="LegStats">
<resourceUri>LegStats</resourceUri>
</DataSource>
</dataSources>
<calculationViews>
<calculationView xsi:type="Calculation:RankView" id="StartDelayRanking">
@@ -90,6 +93,8 @@
<viewAttribute id="startDelayRank" aggregationType="sum"/>
<viewAttribute id="StartlineDistanceRank" aggregationType="sum"/>
<viewAttribute id="StartlineSpeedRank" aggregationType="sum"/>
<viewAttribute id="distanceSailedRank" aggregationType="sum"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="StartDelayRanking" emptyUnionBehavior="NO_ROW">
@@ -100,6 +105,8 @@
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayRank" source="startDelayRank"/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="StartlineDistanceRank" null="true" value=""/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="StartlineSpeedRank" null="true" value=""/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="distanceSailedRank" null="true" value=""/>
</input>
<input node="StartlineDistanceRanking" emptyUnionBehavior="NO_ROW">
@@ -114,6 +121,10 @@
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="StartlineSpeedRank" null="true" value=""/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="distanceSailedRank" null="true" value=""/>
</input>
<input node="StartlineSpeedRanking" emptyUnionBehavior="NO_ROW">
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
@@ -123,6 +134,18 @@
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="startDelayRank" null="true" value=""/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="StartlineDistanceRank" null="true" value=""/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineSpeedRank" source="StartlineSpeedRank"/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="distanceSailedRank" null="true" value=""/>
</input>
<input node="DistSailedRanking">
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="startDelayRank" null="true" value=""/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="StartlineDistanceRank" null="true" value=""/>
<mapping xsi:type="Calculation:ConstantAttributeMapping" target="StartlineSpeedRank" null="true" value=""/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceSailedRank" source="distanceSailedRank"/>
</input>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="Join_1" cardinality="C1_1" joinType="leftOuter">
@@ -137,6 +160,8 @@
<viewAttribute id="shortName"/>
<viewAttribute id="nationality"/>
<viewAttribute id="sailNumber"/>
<viewAttribute id="distanceSailedRank" aggregationType="sum"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="Union_1">
@@ -146,6 +171,8 @@
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayRank" source="startDelayRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineDistanceRank" source="StartlineDistanceRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineSpeedRank" source="StartlineSpeedRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceSailedRank" source="distanceSailedRank"/>
</input>
<input node="Competitor">
<mapping xsi:type="Calculation:AttributeMapping" target="name" source="name"/>
@@ -156,6 +183,38 @@
</input>
<joinAttribute name="competitorId"/>
</calculationView>
<calculationView xsi:type="Calculation:RankView" id="DistSailedRanking">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
<viewAttribute id="competitorId"/>
<viewAttribute id="distanceSailedInMeters" aggregationType="sum"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="RaceDistanceSailed"/>
<rankingFilter type="RANK_PERCENT" offset="0" offsetReference="FRONT" dynamicPartitionAttributes="false">
<partitionViewAttributeName id="regatta"/>
<partitionViewAttributeName id="raceName"/>
<order byViewAttributeName="distanceSailedInMeters" direction="ASC"/>
<rankThreshold>
<value>1</value>
</rankThreshold>
<rankViewAttributeName>distanceSailedRank</rankViewAttributeName>
</rankingFilter>
</calculationView>
<calculationView xsi:type="Calculation:AggregationView" id="RaceDistanceSailed">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
<viewAttribute id="competitorId"/>
<viewAttribute id="distanceSailedInMeters" aggregationType="sum"/>
</viewAttributes>
<calculatedViewAttributes/>
<restrictedViewAttributes/>
<input node="LegStats">
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="race"/>
</input>
</calculationView>
</calculationViews>
<logicalModel id="Join_1">
@@ -173,36 +232,40 @@
<keyMapping columnObjectName="Join_1" columnName="competitorId"/>
</attribute>
<attribute id="name" order="7" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="name" order="4" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="name"/>
<keyMapping columnObjectName="Join_1" columnName="name"/>
</attribute>
<attribute id="shortName" order="8" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="shortName" order="5" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="shortName"/>
<keyMapping columnObjectName="Join_1" columnName="shortName"/>
</attribute>
<attribute id="nationality" order="9" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="nationality" order="6" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="nationality"/>
<keyMapping columnObjectName="Join_1" columnName="nationality"/>
</attribute>
<attribute id="sailNumber" order="10" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="sailNumber" order="7" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="sailNumber"/>
<keyMapping columnObjectName="Join_1" columnName="sailNumber"/>
</attribute>
</attributes>
<calculatedAttributes/>
<baseMeasures>
<measure id="startDelayRank" order="4" aggregationType="sum" measureType="simple">
<measure id="distanceSailedRank" order="8" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="distanceSailedRank"/>
<measureMapping columnObjectName="Join_1" columnName="distanceSailedRank"/>
</measure>
<measure id="startDelayRank" order="9" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="startDelayRank"/>
<measureMapping columnObjectName="Join_1" columnName="startDelayRank"/>
</measure>
<measure id="StartlineDistanceRank" order="5" aggregationType="sum" measureType="simple">
<measure id="StartlineDistanceRank" order="10" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="StartlineDistanceRank"/>
<measureMapping columnObjectName="Join_1" columnName="StartlineDistanceRank"/>
</measure>
<measure id="StartlineSpeedRank" order="6" aggregationType="sum" measureType="simple">
<measure id="StartlineSpeedRank" order="11" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="StartlineSpeedRank"/>
<measureMapping columnObjectName="Join_1" columnName="StartlineSpeedRank"/>
</measure>
@@ -214,32 +277,32 @@
<layout>
<shapes>
<shape expanded="true" modelObjectName="Output" modelObjectNameSpace="MeasureGroup">
<upperLeftCorner x="405" y="112"/>
<upperLeftCorner x="504.28437919115527" y="112"/>
<rectangleSize width="160"/>
</shape>
<shape expanded="true" modelObjectName="StartDelayRanking" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="92" y="531"/>
<upperLeftCorner x="785.5" y="566.9999976158142"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape expanded="true" modelObjectName="StartlineDistanceRanking" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="512" y="531"/>
<upperLeftCorner x="520.5" y="566.9999976158142"/>
<rectangleSize height="30" width="215"/>
</shape>
<shape expanded="true" modelObjectName="StartlineSpeedRanking" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="302" y="531"/>
<upperLeftCorner x="310.50000000000006" y="566.9999976158142"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape expanded="true" modelObjectName="Union_1" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="302" y="376"/>
<upperLeftCorner x="486.45507679489947" y="376.9999988079071"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape expanded="true" modelObjectName="Join_1" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="405" y="217"/>
<upperLeftCorner x="486.45507679489947" y="237"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape modelObjectName="Union_1" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput">
@@ -250,6 +313,15 @@
<upperLeftCorner x="320" y="30"/>
<rectangleSize width="194"/>
</shape>
<shape expanded="true" modelObjectName="DistSailedRanking" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="100.5" y="566.9999976158142"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape expanded="true" modelObjectName="RaceDistanceSailed" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="92" y="671.9999976158142"/>
<rectangleSize height="30" width="177"/>
</shape>
</shapes>
</layout>
</Calculation:scenario>
+385 -193
View File
@@ -19,6 +19,9 @@
<DataSource id="sailing-race-stat-ranks">
<resourceUri>sailing-race-stat-ranks</resourceUri>
</DataSource>
<DataSource id="CompLowestRank$$$$RaceStats$$">
<resourceUri>RaceStats</resourceUri>
</DataSource>
</dataSources>
<calculationViews>
<calculationView xsi:type="Calculation:ProjectionView" id="LegStatsView">
@@ -47,6 +50,8 @@
<viewAttribute id="firstMarkElapsedTimeInSeconds"/>
<viewAttribute id="finalGapToLeaderInSeconds"/>
<viewAttribute id="legType"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="sailing-leg-stats">
@@ -65,6 +70,8 @@
<viewAttribute id="startTack"/>
<viewAttribute id="rank90sAfterStart"/>
<viewAttribute id="windwardDistanceFromStartLineInMetersAtStart"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="RaceStats">
@@ -111,6 +118,8 @@
<viewAttribute id="startDelayInSeconds"/>
<viewAttribute id="distanceFromStartLineInMetersAtStart"/>
<viewAttribute id="speedWhenCrossingStartLineInKnots"/>
<viewAttribute id="windwardDistanceFromStartLineInMetersAtStart"/>
</viewAttributes>
<calculatedViewAttributes>
<calculatedViewAttribute id="count" datatype="INTEGER" expressionLanguage="SQL">
@@ -121,7 +130,7 @@
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="race"/>
</input>
</calculationView>
<calculationView xsi:type="Calculation:AggregationView" id="RaceStatsAggregation">
<calculationView xsi:type="Calculation:AggregationView" id="RaceStatAverages">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
@@ -130,6 +139,8 @@
<viewAttribute id="raceAvgStartDelayInSeconds" aggregationType="avg"/>
<viewAttribute id="raceAvgDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
<viewAttribute id="raceAvgSpeedWhenCrossingStartLineInKnots" aggregationType="avg"/>
<viewAttribute id="raceAvgWindwardDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
</viewAttributes>
<calculatedViewAttributes/>
<restrictedViewAttributes/>
@@ -139,6 +150,8 @@
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgStartDelayInSeconds" source="startDelayInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgDistanceFromStartLineInMetersAtStart" source="distanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgSpeedWhenCrossingStartLineInKnots" source="speedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgWindwardDistanceFromStartLineInMetersAtStart" source="windwardDistanceFromStartLineInMetersAtStart"/>
</input>
</calculationView>
<calculationView xsi:type="Calculation:ProjectionView" id="RaceStatRanks">
@@ -149,10 +162,34 @@
<viewAttribute id="startDelayRank"/>
<viewAttribute id="StartlineDistanceRank"/>
<viewAttribute id="StartlineSpeedRank"/>
<viewAttribute id="distanceSailedRank"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="sailing-race-stat-ranks"/>
</calculationView>
<calculationView xsi:type="Calculation:RankView" id="CompLowestRank">
<viewAttributes>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
<viewAttribute id="competitorId"/>
<viewAttribute id="rankOneBased" aggregationType="sum"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="CompLowestRank$$$$RaceStats$$">
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="race"/>
</input>
<rankingFilter type="RANK" offset="0" offsetReference="FRONT" dynamicPartitionAttributes="false">
<partitionViewAttributeName id="regatta"/>
<partitionViewAttributeName id="competitorId"/>
<order byViewAttributeName="rankOneBased" direction="DESC"/>
<rankThreshold>
<value>1</value>
</rankThreshold>
<rankViewAttributeName>lowestRank</rankViewAttributeName>
</rankingFilter>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="Join_1_1" cardinality="C1_1" joinType="inner" multiJoinNode="Join_1" multiJoinCentralTable="LegStatsView" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="raceColumn"/>
@@ -181,6 +218,7 @@
<viewAttribute id="raceAvgStartDelayInSeconds" aggregationType="avg"/>
<viewAttribute id="raceAvgDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
<viewAttribute id="raceAvgSpeedWhenCrossingStartLineInKnots" aggregationType="avg"/>
<viewAttribute id="raceAvgWindwardDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
</viewAttributes>
@@ -211,11 +249,12 @@
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
</input>
<input node="RaceStatsAggregation">
<input node="RaceStatAverages">
<mapping xsi:type="Calculation:AttributeMapping" target="raceCompetitorCount" source="raceCompetitorCount"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgStartDelayInSeconds" source="raceAvgStartDelayInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgDistanceFromStartLineInMetersAtStart" source="raceAvgDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgSpeedWhenCrossingStartLineInKnots" source="raceAvgSpeedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgWindwardDistanceFromStartLineInMetersAtStart" source="raceAvgWindwardDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
</input>
@@ -230,9 +269,8 @@
<viewAttribute id="speedWhenCrossingStartLineInKnots" aggregationType="sum"/>
<viewAttribute id="startTack"/>
<viewAttribute id="startRank" aggregationType="sum"/>
<viewAttribute id="startDelayRank" aggregationType="sum"/>
<viewAttribute id="StartlineDistanceRank" aggregationType="sum"/>
<viewAttribute id="StartlineSpeedRank" aggregationType="sum"/>
<viewAttribute id="lowestRank" aggregationType="sum"/>
<viewAttribute id="windwardDistanceFromStartLineInMetersAtStart" aggregationType="sum"/>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
<viewAttribute id="competitorId"/>
@@ -245,14 +283,13 @@
<mapping xsi:type="Calculation:AttributeMapping" target="speedWhenCrossingStartLineInKnots" source="speedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startTack" source="startTack"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startRank" source="rank90sAfterStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="windwardDistanceFromStartLineInMetersAtStart" source="windwardDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
</input>
<input node="RaceStatRanks">
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayRank" source="startDelayRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineDistanceRank" source="StartlineDistanceRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineSpeedRank" source="StartlineSpeedRank"/>
<input node="CompLowestRank">
<mapping xsi:type="Calculation:AttributeMapping" target="lowestRank" source="lowestRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
@@ -261,7 +298,52 @@
<joinAttribute name="raceName"/>
<joinAttribute name="competitorId"/>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="Join_1_3" cardinality="CN_1" joinType="inner" multiJoinNode="Join_1" multiJoinCentralTable="LegStatsView" multiJoinOrder="Outside In">
<calculationView xsi:type="Calculation:JoinView" id="Join_1_3" cardinality="C1_1" joinType="leftOuter" multiJoinNode="Join_1" multiJoinCentralTable="LegStatsView" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="rankOneBased" aggregationType="sum"/>
<viewAttribute id="startDelayInSeconds" aggregationType="sum"/>
<viewAttribute id="distanceFromStartLineInMetersAtStart" aggregationType="sum"/>
<viewAttribute id="speedWhenCrossingStartLineInKnots" aggregationType="sum"/>
<viewAttribute id="startTack"/>
<viewAttribute id="startRank" aggregationType="sum"/>
<viewAttribute id="lowestRank" aggregationType="sum"/>
<viewAttribute id="windwardDistanceFromStartLineInMetersAtStart" aggregationType="sum"/>
<viewAttribute id="startDelayRank" aggregationType="sum"/>
<viewAttribute id="StartlineDistanceRank" aggregationType="sum"/>
<viewAttribute id="StartlineSpeedRank" aggregationType="sum"/>
<viewAttribute id="distanceSailedRank" aggregationType="sum"/>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
<viewAttribute id="competitorId"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="Join_1_2">
<mapping xsi:type="Calculation:AttributeMapping" target="rankOneBased" source="rankOneBased"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayInSeconds" source="startDelayInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceFromStartLineInMetersAtStart" source="distanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="speedWhenCrossingStartLineInKnots" source="speedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startTack" source="startTack"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startRank" source="startRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="lowestRank" source="lowestRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="windwardDistanceFromStartLineInMetersAtStart" source="windwardDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
</input>
<input node="RaceStatRanks">
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayRank" source="startDelayRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineDistanceRank" source="StartlineDistanceRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineSpeedRank" source="StartlineSpeedRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceSailedRank" source="distanceSailedRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
</input>
<joinAttribute name="regatta"/>
<joinAttribute name="raceName"/>
<joinAttribute name="competitorId"/>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="Join_1_4" cardinality="CN_1" joinType="inner" multiJoinNode="Join_1" multiJoinCentralTable="LegStatsView" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="raceColumn"/>
<viewAttribute id="fleet"/>
@@ -289,30 +371,37 @@
<viewAttribute id="raceAvgStartDelayInSeconds" aggregationType="avg"/>
<viewAttribute id="raceAvgDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
<viewAttribute id="raceAvgSpeedWhenCrossingStartLineInKnots" aggregationType="avg"/>
<viewAttribute id="raceAvgWindwardDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
<viewAttribute id="rankOneBased" aggregationType="sum"/>
<viewAttribute id="startDelayInSeconds" aggregationType="sum"/>
<viewAttribute id="distanceFromStartLineInMetersAtStart" aggregationType="sum"/>
<viewAttribute id="speedWhenCrossingStartLineInKnots" aggregationType="sum"/>
<viewAttribute id="startTack"/>
<viewAttribute id="startRank" aggregationType="sum"/>
<viewAttribute id="lowestRank" aggregationType="sum"/>
<viewAttribute id="windwardDistanceFromStartLineInMetersAtStart" aggregationType="sum"/>
<viewAttribute id="startDelayRank" aggregationType="sum"/>
<viewAttribute id="StartlineDistanceRank" aggregationType="sum"/>
<viewAttribute id="StartlineSpeedRank" aggregationType="sum"/>
<viewAttribute id="distanceSailedRank" aggregationType="sum"/>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
<viewAttribute id="competitorId"/>
</viewAttributes>
<calculatedViewAttributes/>
<input node="Join_1_2">
<input node="Join_1_3">
<mapping xsi:type="Calculation:AttributeMapping" target="rankOneBased" source="rankOneBased"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayInSeconds" source="startDelayInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceFromStartLineInMetersAtStart" source="distanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="speedWhenCrossingStartLineInKnots" source="speedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startTack" source="startTack"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startRank" source="startRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="lowestRank" source="lowestRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="windwardDistanceFromStartLineInMetersAtStart" source="windwardDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayRank" source="startDelayRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineDistanceRank" source="StartlineDistanceRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineSpeedRank" source="StartlineSpeedRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceSailedRank" source="distanceSailedRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
@@ -344,13 +433,14 @@
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgStartDelayInSeconds" source="raceAvgStartDelayInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgDistanceFromStartLineInMetersAtStart" source="raceAvgDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgSpeedWhenCrossingStartLineInKnots" source="raceAvgSpeedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgWindwardDistanceFromStartLineInMetersAtStart" source="raceAvgWindwardDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
</input>
<joinAttribute name="regatta"/>
<joinAttribute name="raceName"/>
</calculationView>
<calculationView xsi:type="Calculation:JoinView" id="Join_1_4" cardinality="CN_1" joinType="inner" multiJoinNode="Join_1" multiJoinCentralTable="LegStatsView" multiJoinOrder="Outside In">
<calculationView xsi:type="Calculation:JoinView" id="Join_1_5" cardinality="CN_1" joinType="inner" multiJoinNode="Join_1" multiJoinCentralTable="LegStatsView" multiJoinOrder="Outside In">
<viewAttributes>
<viewAttribute id="raceColumn"/>
<viewAttribute id="fleet"/>
@@ -378,6 +468,7 @@
<viewAttribute id="raceAvgStartDelayInSeconds" aggregationType="avg"/>
<viewAttribute id="raceAvgDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
<viewAttribute id="raceAvgSpeedWhenCrossingStartLineInKnots" aggregationType="avg"/>
<viewAttribute id="raceAvgWindwardDistanceFromStartLineInMetersAtStart" aggregationType="avg"/>
<viewAttribute id="regatta"/>
<viewAttribute id="raceName"/>
<viewAttribute id="rankOneBased" aggregationType="sum"/>
@@ -386,10 +477,13 @@
<viewAttribute id="speedWhenCrossingStartLineInKnots" aggregationType="sum"/>
<viewAttribute id="startTack"/>
<viewAttribute id="startRank" aggregationType="sum"/>
<viewAttribute id="lowestRank" aggregationType="sum"/>
<viewAttribute id="windwardDistanceFromStartLineInMetersAtStart" aggregationType="sum"/>
<viewAttribute id="competitorId"/>
<viewAttribute id="startDelayRank" aggregationType="sum"/>
<viewAttribute id="StartlineDistanceRank" aggregationType="sum"/>
<viewAttribute id="StartlineSpeedRank" aggregationType="sum"/>
<viewAttribute id="competitorId"/>
<viewAttribute id="distanceSailedRank" aggregationType="sum"/>
<viewAttribute id="legNumber" aggregationType="sum"/>
<viewAttribute id="competitorName"/>
<viewAttribute id="shortName"/>
@@ -410,8 +504,16 @@
<viewAttribute id="firstMarkDistanceSailedInMeters" aggregationType="sum"/>
<viewAttribute id="firstMarkElapsedTimeInSeconds" aggregationType="sum"/>
<viewAttribute id="finalGapToLeaderInSeconds" aggregationType="min"/>
<viewAttribute id="legType"/>
</viewAttributes>
<calculatedViewAttributes/>
<calculatedViewAttributes>
<calculatedViewAttribute id="isLowestRankedRace" datatype="BOOLEAN" expressionLanguage="SQL">
<formula>CASE &quot;lowestRank&quot;
WHEN 1 then true
ELSE false
END</formula>
</calculatedViewAttribute>
</calculatedViewAttributes>
<input node="LegStatsView">
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
@@ -436,8 +538,9 @@
<mapping xsi:type="Calculation:AttributeMapping" target="firstMarkDistanceSailedInMeters" source="firstMarkDistanceSailedInMeters"/>
<mapping xsi:type="Calculation:AttributeMapping" target="firstMarkElapsedTimeInSeconds" source="firstMarkElapsedTimeInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="finalGapToLeaderInSeconds" source="finalGapToLeaderInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="legType" source="legType"/>
</input>
<input node="Join_1_3">
<input node="Join_1_4">
<mapping xsi:type="Calculation:AttributeMapping" target="raceColumn" source="raceColumn"/>
<mapping xsi:type="Calculation:AttributeMapping" target="fleet" source="fleet"/>
<mapping xsi:type="Calculation:AttributeMapping" target="dateOfRace" source="dateOfRace"/>
@@ -464,15 +567,19 @@
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgStartDelayInSeconds" source="raceAvgStartDelayInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgDistanceFromStartLineInMetersAtStart" source="raceAvgDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgSpeedWhenCrossingStartLineInKnots" source="raceAvgSpeedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceAvgWindwardDistanceFromStartLineInMetersAtStart" source="raceAvgWindwardDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="rankOneBased" source="rankOneBased"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayInSeconds" source="startDelayInSeconds"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceFromStartLineInMetersAtStart" source="distanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="speedWhenCrossingStartLineInKnots" source="speedWhenCrossingStartLineInKnots"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startTack" source="startTack"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startRank" source="startRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="lowestRank" source="lowestRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="windwardDistanceFromStartLineInMetersAtStart" source="windwardDistanceFromStartLineInMetersAtStart"/>
<mapping xsi:type="Calculation:AttributeMapping" target="startDelayRank" source="startDelayRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineDistanceRank" source="StartlineDistanceRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="StartlineSpeedRank" source="StartlineSpeedRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="distanceSailedRank" source="distanceSailedRank"/>
<mapping xsi:type="Calculation:AttributeMapping" target="regatta" source="regatta"/>
<mapping xsi:type="Calculation:AttributeMapping" target="raceName" source="raceName"/>
<mapping xsi:type="Calculation:AttributeMapping" target="competitorId" source="competitorId"/>
@@ -483,268 +590,317 @@
</calculationView>
</calculationViews>
<logicalModel id="Join_1_4">
<logicalModel id="Join_1_5">
<attributes>
<attribute id="regatta" order="1" displayAttribute="false" attributeHierarchyActive="false" key="true">
<descriptions defaultDescription="Regatta"/>
<keyMapping columnObjectName="Join_1_4" columnName="regatta"/>
<keyMapping columnObjectName="Join_1_5" columnName="regatta"/>
</attribute>
<attribute id="raceName" order="2" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race" key="true">
<descriptions defaultDescription="Race"/>
<keyMapping columnObjectName="Join_1_4" columnName="raceName"/>
<keyMapping columnObjectName="Join_1_5" columnName="raceName"/>
</attribute>
<attribute id="legNumber" order="3" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race" key="true">
<descriptions defaultDescription="Leg"/>
<keyMapping columnObjectName="Join_1_4" columnName="legNumber"/>
<keyMapping columnObjectName="Join_1_5" columnName="legNumber"/>
</attribute>
<attribute id="competitorId" order="4" displayAttribute="false" attributeHierarchyActive="false" descriptionColumnName="competitorName" displayFolder="Competitor" key="true">
<descriptions defaultDescription="Competitor"/>
<keyMapping columnObjectName="Join_1_4" columnName="competitorId"/>
<keyMapping columnObjectName="Join_1_5" columnName="competitorId"/>
</attribute>
<attribute id="raceColumn" order="5" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Race Column"/>
<keyMapping columnObjectName="Join_1_4" columnName="raceColumn"/>
<keyMapping columnObjectName="Join_1_5" columnName="raceColumn"/>
</attribute>
<attribute id="fleet" order="6" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="Fleet"/>
<keyMapping columnObjectName="Join_1_4" columnName="fleet"/>
<keyMapping columnObjectName="Join_1_5" columnName="fleet"/>
</attribute>
<attribute id="competitorName" order="7" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Competitor">
<attribute id="legType" order="7" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="Legtype"/>
<keyMapping columnObjectName="Join_1_5" columnName="legType"/>
</attribute>
<attribute id="competitorName" order="8" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Competitor">
<descriptions defaultDescription="Name of Competitor"/>
<keyMapping columnObjectName="Join_1_4" columnName="competitorName"/>
</attribute>
<attribute id="shortName" order="8" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Competitor">
<descriptions defaultDescription="Shortname of Competitor"/>
<keyMapping columnObjectName="Join_1_4" columnName="shortName"/>
<keyMapping columnObjectName="Join_1_5" columnName="competitorName"/>
</attribute>
<attribute id="nationality" order="9" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Competitor">
<descriptions defaultDescription="Nationality"/>
<keyMapping columnObjectName="Join_1_4" columnName="nationality"/>
<keyMapping columnObjectName="Join_1_5" columnName="nationality"/>
</attribute>
<attribute id="sailNumber" order="10" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="Sailnumber"/>
<keyMapping columnObjectName="Join_1_4" columnName="sailNumber"/>
<keyMapping columnObjectName="Join_1_5" columnName="sailNumber"/>
</attribute>
<attribute id="shortName" order="11" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Competitor">
<descriptions defaultDescription="Shortname of Competitor"/>
<keyMapping columnObjectName="Join_1_5" columnName="shortName"/>
</attribute>
<attribute id="startTack" order="11" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<attribute id="startTack" order="12" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Start Tack"/>
<keyMapping columnObjectName="Join_1_4" columnName="startTack"/>
<keyMapping columnObjectName="Join_1_5" columnName="startTack"/>
</attribute>
<attribute id="dateOfRace" order="12" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<attribute id="dateOfRace" order="13" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Date of Race"/>
<keyMapping columnObjectName="Join_1_4" columnName="dateOfRace"/>
<keyMapping columnObjectName="Join_1_5" columnName="dateOfRace"/>
</attribute>
<attribute id="dateOfRace2" order="13" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<attribute id="dateOfRace2" order="14" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Date of Race (2)"/>
<keyMapping columnObjectName="Join_1_4" columnName="dateOfRace2"/>
<keyMapping columnObjectName="Join_1_5" columnName="dateOfRace2"/>
</attribute>
<attribute id="dayOfRace" order="14" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<attribute id="dayOfRace" order="15" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Day of Race"/>
<keyMapping columnObjectName="Join_1_4" columnName="dayOfRace"/>
<keyMapping columnObjectName="Join_1_5" columnName="dayOfRace"/>
</attribute>
<attribute id="monthOfRace" order="15" displayAttribute="false" attributeHierarchyActive="false" descriptionColumnName="monthOfRace_name" displayFolder="Race">
<attribute id="monthOfRace" order="16" displayAttribute="false" attributeHierarchyActive="false" descriptionColumnName="monthOfRace_name" displayFolder="Race">
<descriptions defaultDescription="Month of Race"/>
<keyMapping columnObjectName="Join_1_4" columnName="monthOfRace"/>
<keyMapping columnObjectName="Join_1_5" columnName="monthOfRace"/>
</attribute>
<attribute id="monthOfRace_name" order="16" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<attribute id="monthOfRace_name" order="17" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Month of Race (name)"/>
<keyMapping columnObjectName="Join_1_4" columnName="monthOfRace_name"/>
<keyMapping columnObjectName="Join_1_5" columnName="monthOfRace_name"/>
</attribute>
<attribute id="yearOfRace" order="17" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<attribute id="yearOfRace" order="18" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Year of Race"/>
<keyMapping columnObjectName="Join_1_4" columnName="yearOfRace"/>
<keyMapping columnObjectName="Join_1_5" columnName="yearOfRace"/>
</attribute>
<attribute id="avgWindSpeedCategory" order="18" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<attribute id="isLowestRankedRace" order="19" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Rank">
<descriptions defaultDescription="Is Lowest Ranked Race"/>
<keyMapping columnObjectName="Join_1_5" columnName="isLowestRankedRace"/>
</attribute>
<attribute id="avgWindSpeedCategory" order="20" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Race">
<descriptions defaultDescription="Avg Windspeed Category"/>
<keyMapping columnObjectName="Join_1_4" columnName="avgWindSpeedCategory"/>
<keyMapping columnObjectName="Join_1_5" columnName="avgWindSpeedCategory"/>
</attribute>
<attribute id="boatClass" order="19" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="boatClass" order="21" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="Boatclass"/>
<keyMapping columnObjectName="Join_1_4" columnName="boatClass"/>
<keyMapping columnObjectName="Join_1_5" columnName="boatClass"/>
</attribute>
<attribute id="hullType" order="20" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="hullType" order="22" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="Hulltype"/>
<keyMapping columnObjectName="Join_1_4" columnName="hullType"/>
<keyMapping columnObjectName="Join_1_5" columnName="hullType"/>
</attribute>
<attribute id="scoringScheme" order="21" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="scoringScheme" order="23" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="Scoring Scheme"/>
<keyMapping columnObjectName="Join_1_4" columnName="scoringScheme"/>
<keyMapping columnObjectName="Join_1_5" columnName="scoringScheme"/>
</attribute>
<attribute id="rankingMetric" order="22" displayAttribute="false" attributeHierarchyActive="false">
<attribute id="rankingMetric" order="24" displayAttribute="false" attributeHierarchyActive="false">
<descriptions defaultDescription="Ranking Metric"/>
<keyMapping columnObjectName="Join_1_4" columnName="rankingMetric"/>
<keyMapping columnObjectName="Join_1_5" columnName="rankingMetric"/>
</attribute>
<attribute id="eventId" order="23" displayAttribute="false" attributeHierarchyActive="false" descriptionColumnName="eventName" displayFolder="Event">
<attribute id="eventId" order="25" displayAttribute="false" attributeHierarchyActive="false" descriptionColumnName="eventName" displayFolder="Event">
<descriptions defaultDescription="Event"/>
<keyMapping columnObjectName="Join_1_4" columnName="eventId"/>
<keyMapping columnObjectName="Join_1_5" columnName="eventId"/>
</attribute>
<attribute id="eventName" order="24" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<attribute id="eventName" order="26" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<descriptions defaultDescription="Eventname"/>
<keyMapping columnObjectName="Join_1_4" columnName="eventName"/>
<keyMapping columnObjectName="Join_1_5" columnName="eventName"/>
</attribute>
<attribute id="eventDescription" order="25" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<attribute id="eventDescription" order="27" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<descriptions defaultDescription="Event Description"/>
<keyMapping columnObjectName="Join_1_4" columnName="eventDescription"/>
<keyMapping columnObjectName="Join_1_5" columnName="eventDescription"/>
</attribute>
<attribute id="eventStartDate" order="26" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<attribute id="eventStartDate" order="28" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<descriptions defaultDescription="Startdate of Event"/>
<keyMapping columnObjectName="Join_1_4" columnName="eventStartDate"/>
<keyMapping columnObjectName="Join_1_5" columnName="eventStartDate"/>
</attribute>
<attribute id="eventEndDate" order="27" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<attribute id="eventEndDate" order="29" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<descriptions defaultDescription="Enddate of Event"/>
<keyMapping columnObjectName="Join_1_4" columnName="eventEndDate"/>
<keyMapping columnObjectName="Join_1_5" columnName="eventEndDate"/>
</attribute>
<attribute id="venue" order="28" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<attribute id="venue" order="30" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<descriptions defaultDescription="Venue of Event"/>
<keyMapping columnObjectName="Join_1_4" columnName="venue"/>
<keyMapping columnObjectName="Join_1_5" columnName="venue"/>
</attribute>
<attribute id="location" order="29" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<attribute id="location" order="31" displayAttribute="false" attributeHierarchyActive="false" displayFolder="Event">
<descriptions defaultDescription="Location of Event"/>
<keyMapping columnObjectName="Join_1_4" columnName="location"/>
<keyMapping columnObjectName="Join_1_5" columnName="location"/>
</attribute></attributes>
<calculatedAttributes/>
<baseMeasures>
<measure id="rankOneBased" order="30" aggregationType="sum" measureType="simple" displayFolder="Rank">
<measure id="rankOneBased" order="32" aggregationType="sum" measureType="simple" displayFolder="Rank">
<descriptions defaultDescription="Rank"/>
<measureMapping columnObjectName="Join_1_4" columnName="rankOneBased"/>
<measureMapping columnObjectName="Join_1_5" columnName="rankOneBased"/>
</measure>
<measure id="startRank" order="31" aggregationType="sum" measureType="simple" displayFolder="Rank">
<measure id="startRank" order="34" aggregationType="sum" measureType="simple" displayFolder="Rank">
<descriptions defaultDescription="Start Rank (90s)"/>
<measureMapping columnObjectName="Join_1_4" columnName="startRank"/>
<measureMapping columnObjectName="Join_1_5" columnName="startRank"/>
</measure>
<measure id="legRankOneBased" order="32" aggregationType="sum" measureType="simple" displayFolder="Rank">
<measure id="legRankOneBased" order="36" aggregationType="sum" measureType="simple" displayFolder="Rank">
<descriptions defaultDescription="Leg Rank"/>
<measureMapping columnObjectName="Join_1_4" columnName="legRankOneBased"/>
<measureMapping columnObjectName="Join_1_5" columnName="legRankOneBased"/>
</measure>
<measure id="firstMarkRankOneBased" order="33" aggregationType="sum" measureType="simple" displayFolder="Rank">
<measure id="firstMarkRankOneBased" order="37" aggregationType="sum" measureType="simple" displayFolder="Rank">
<descriptions defaultDescription="Rank at First Mark"/>
<measureMapping columnObjectName="Join_1_4" columnName="firstMarkRankOneBased"/>
<measureMapping columnObjectName="Join_1_5" columnName="firstMarkRankOneBased"/>
</measure>
<measure id="avgWindSpeedInKnots" order="38" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<measure id="avgWindSpeedInKnots" order="41" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<descriptions defaultDescription="Avg Windspeed"/>
<fixedUnit>kn</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="avgWindSpeedInKnots"/>
<measureMapping columnObjectName="Join_1_5" columnName="avgWindSpeedInKnots"/>
</measure>
<measure id="raceDurationInSeconds" order="39" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<measure id="raceDurationInSeconds" order="42" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<descriptions defaultDescription="Raceduration"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="raceDurationInSeconds"/>
<measureMapping columnObjectName="Join_1_5" columnName="raceDurationInSeconds"/>
</measure>
<measure id="startDelayInSeconds" order="40" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<measure id="startDelayInSeconds" order="43" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="Startdelay">
<descriptions defaultDescription="Startdelay"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="startDelayInSeconds"/>
<measureMapping columnObjectName="Join_1_5" columnName="startDelayInSeconds"/>
</measure>
<measure id="distanceFromStartLineInMetersAtStart" order="41" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<descriptions defaultDescription="Distance from Startline at Start"/>
<measure id="raceAvgStartDelayInSeconds" order="45" semanticType="quantity" aggregationType="avg" measureType="quantity" displayFolder="Startdelay">
<descriptions defaultDescription="Race Avg Startdelay"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_5" columnName="raceAvgStartDelayInSeconds"/>
</measure>
<measure id="startDelayRank" order="46" aggregationType="sum" measureType="simple" displayFolder="Startdelay">
<descriptions defaultDescription="Startdelay Rank"/>
<measureMapping columnObjectName="Join_1_5" columnName="startDelayRank"/>
</measure>
<measure id="distanceFromStartLineInMetersAtStart" order="47" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="StartlineDistance">
<descriptions defaultDescription="Startline Distance"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="distanceFromStartLineInMetersAtStart"/>
<measureMapping columnObjectName="Join_1_5" columnName="distanceFromStartLineInMetersAtStart"/>
</measure>
<measure id="speedWhenCrossingStartLineInKnots" order="43" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<measure id="raceAvgStartlineDistanceInMeters" order="49" semanticType="quantity" aggregationType="avg" measureType="quantity" displayFolder="StartlineDistance">
<descriptions defaultDescription="Race Avg Startline Distance"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_5" columnName="raceAvgDistanceFromStartLineInMetersAtStart"/>
</measure>
<measure id="StartlineDistanceRank" order="50" aggregationType="sum" measureType="simple" displayFolder="StartlineDistance">
<descriptions defaultDescription="Startline Distance Rank"/>
<measureMapping columnObjectName="Join_1_5" columnName="StartlineDistanceRank"/>
</measure>
<measure id="windwardDistanceFromStartLineInMetersAtStart" order="51" semanticType="quantity" aggregationType="sum" measureType="quantity" displayFolder="StartlineDistance">
<descriptions defaultDescription="Windward Startline Distance"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_5" columnName="windwardDistanceFromStartLineInMetersAtStart"/>
</measure>
<measure id="raceAvgWindwardDistanceFromStartLineInMetersAtStart" order="53" semanticType="quantity" aggregationType="avg" measureType="quantity" displayFolder="StartlineDistance">
<descriptions defaultDescription="Race Avg Windward Startline Distance"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_5" columnName="raceAvgWindwardDistanceFromStartLineInMetersAtStart"/>
</measure>
<measure id="speedWhenCrossingStartLineInKnots" order="54" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="StartlineSpeed">
<descriptions defaultDescription="Speed when crossing Startline"/>
<fixedUnit>kn</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="speedWhenCrossingStartLineInKnots"/>
<measureMapping columnObjectName="Join_1_5" columnName="speedWhenCrossingStartLineInKnots"/>
</measure>
<measure id="distanceSailedInMeters" order="45" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1">
<measure id="raceAvgStartlineSpeedInKnots" order="56" semanticType="quantity" aggregationType="avg" measureType="quantity" displayFolder="StartlineSpeed">
<descriptions defaultDescription="Race Avg Startline Speed"/>
<fixedUnit>kn</fixedUnit>
<measureMapping columnObjectName="Join_1_5" columnName="raceAvgSpeedWhenCrossingStartLineInKnots"/>
</measure>
<measure id="StartlineSpeedRank" order="57" aggregationType="sum" measureType="simple" displayFolder="StartlineSpeed">
<descriptions defaultDescription="Startline SpeedRank"/>
<measureMapping columnObjectName="Join_1_5" columnName="StartlineSpeedRank"/>
</measure>
<measure id="distanceSailedInMeters" order="58" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1" displayFolder="RaceStat">
<descriptions defaultDescription="Distance Sailed"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="distanceSailedInMeters"/>
<measureMapping columnObjectName="Join_1_5" columnName="distanceSailedInMeters"/>
</measure>
<measure id="firstMarkDistanceSailedInMeters" order="47" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0" displayFolder="RaceStat">
<measure id="firstMarkDistanceSailedInMeters" order="60" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0" displayFolder="RaceStat">
<descriptions defaultDescription="Distance Sailed at 1st Mark"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="firstMarkDistanceSailedInMeters"/>
<measureMapping columnObjectName="Join_1_5" columnName="firstMarkDistanceSailedInMeters"/>
</measure>
<measure id="elapsedTimeInSeconds" order="48" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1">
<measure id="elapsedTimeInSeconds" order="61" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="Elapsed Time"/>
<measureMapping columnObjectName="Join_1_4" columnName="elapsedTimeInSeconds"/>
<measureMapping columnObjectName="Join_1_5" columnName="elapsedTimeInSeconds"/>
</measure>
<measure id="firstMarkElapsedTimeInSeconds" order="49" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0" displayFolder="RaceStat">
<measure id="firstMarkElapsedTimeInSeconds" order="62" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0" displayFolder="RaceStat">
<descriptions defaultDescription="Elapsed Time at 1st Mark"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="firstMarkElapsedTimeInSeconds"/>
<measureMapping columnObjectName="Join_1_5" columnName="firstMarkElapsedTimeInSeconds"/>
</measure>
<measure id="avgCrossTrackErrorInMeters" order="50" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="avgCrossTrackErrorInMeters"/>
<measure id="avgCrossTrackErrorInMeters" order="63" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="Avg XTE "/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="avgCrossTrackErrorInMeters"/>
<measureMapping columnObjectName="Join_1_5" columnName="avgCrossTrackErrorInMeters"/>
</measure>
<measure id="absoluteAvgCrossTrackErrorInMeters" order="51" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="absoluteAvgCrossTrackErrorInMeters"/>
<measure id="absoluteAvgCrossTrackErrorInMeters" order="64" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="Abs Avg XTE"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="absoluteAvgCrossTrackErrorInMeters"/>
<measureMapping columnObjectName="Join_1_5" columnName="absoluteAvgCrossTrackErrorInMeters"/>
</measure>
<measure id="avgVMGInKnots" order="52" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<measure id="avgVMGInKnots" order="65" aggregationType="avg" measureType="quantity" semanticType="quantity" presentationScale="1">
<descriptions defaultDescription="Avg VMG"/>
<fixedUnit>kn</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="avgVMGInKnots"/>
<measureMapping columnObjectName="Join_1_5" columnName="avgVMGInKnots"/>
</measure>
<measure id="legGapToLeaderInSeconds" order="54" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0">
<measure id="legGapToLeaderInSeconds" order="67" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0">
<descriptions defaultDescription="Gap to Leader (Lap)"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="legGapToLeaderInSeconds"/>
<measureMapping columnObjectName="Join_1_5" columnName="legGapToLeaderInSeconds"/>
</measure>
<measure id="firstMarkGapToLeaderInSeconds" order="55" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0" displayFolder="RaceStat">
<measure id="firstMarkGapToLeaderInSeconds" order="68" aggregationType="sum" measureType="quantity" semanticType="quantity" presentationScale="0" displayFolder="RaceStat">
<descriptions defaultDescription="Gap to Leader at 1st Mark"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="firstMarkGapToLeaderInSeconds"/>
<measureMapping columnObjectName="Join_1_5" columnName="firstMarkGapToLeaderInSeconds"/>
</measure>
<measure id="finalGapToLeaderInSeconds" order="56" semanticType="quantity" aggregationType="sum" measureType="quantity">
<descriptions defaultDescription="finalGapToLeaderInSeconds"/>
<measure id="finalGapToLeaderInSeconds" order="69" semanticType="quantity" aggregationType="sum" measureType="quantity">
<descriptions defaultDescription="Final Gap to Leader"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="finalGapToLeaderInSeconds"/>
<measureMapping columnObjectName="Join_1_5" columnName="finalGapToLeaderInSeconds"/>
</measure>
<measure id="numberOfTacks" order="57" aggregationType="sum" measureType="simple" displayFolder="Maneuver">
<measure id="numberOfTacks" order="70" aggregationType="sum" measureType="simple" displayFolder="Maneuver">
<descriptions defaultDescription="Number Of Tacks"/>
<measureMapping columnObjectName="Join_1_4" columnName="numberOfTacks"/>
<measureMapping columnObjectName="Join_1_5" columnName="numberOfTacks"/>
</measure>
<measure id="numberOfGybes" order="58" aggregationType="sum" measureType="simple" displayFolder="Maneuver">
<measure id="numberOfGybes" order="71" aggregationType="sum" measureType="simple" displayFolder="Maneuver">
<descriptions defaultDescription="Number Of Gybes"/>
<measureMapping columnObjectName="Join_1_4" columnName="numberOfGybes"/>
<measureMapping columnObjectName="Join_1_5" columnName="numberOfGybes"/>
</measure>
<measure id="numberOfPenaltyCircles" order="59" aggregationType="sum" measureType="simple" displayFolder="Maneuver">
<measure id="numberOfPenaltyCircles" order="72" aggregationType="sum" measureType="simple" displayFolder="Maneuver">
<descriptions defaultDescription="Number Of Penalty Circles"/>
<measureMapping columnObjectName="Join_1_4" columnName="numberOfPenaltyCircles"/>
<measureMapping columnObjectName="Join_1_5" columnName="numberOfPenaltyCircles"/>
</measure>
<measure id="raceCompetitorCount" order="66" aggregationType="min" measureType="simple">
<measure id="raceCompetitorCount" order="79" aggregationType="min" measureType="simple">
<descriptions defaultDescription="raceCompetitorCount"/>
<measureMapping columnObjectName="Join_1_4" columnName="raceCompetitorCount"/>
<measureMapping columnObjectName="Join_1_5" columnName="raceCompetitorCount"/>
</measure>
<measure id="raceAvgStartlineDistanceInMeters" order="69" semanticType="quantity" aggregationType="avg" measureType="quantity">
<descriptions defaultDescription="raceAvgDistanceFromStartLineInMetersAtStart"/>
<fixedUnit>m</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="raceAvgDistanceFromStartLineInMetersAtStart"/>
</measure>
<measure id="raceAvgStartlineSpeedInKnots" order="70" semanticType="quantity" aggregationType="avg" measureType="quantity">
<descriptions defaultDescription="raceAvgSpeedWhenCrossingStartLineInKnots"/>
<fixedUnit>kn</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="raceAvgSpeedWhenCrossingStartLineInKnots"/>
</measure>
<measure id="raceAvgStartDelayInSeconds" order="71" semanticType="quantity" aggregationType="avg" measureType="quantity">
<descriptions defaultDescription="raceAvgStartDelayInSeconds"/>
<fixedUnit>s</fixedUnit>
<measureMapping columnObjectName="Join_1_4" columnName="raceAvgStartDelayInSeconds"/>
</measure>
<measure id="startDelayRank" order="72" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="startDelayRank"/>
<measureMapping columnObjectName="Join_1_4" columnName="startDelayRank"/>
</measure>
<measure id="StartlineDistanceRank" order="73" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="StartlineDistanceRank"/>
<measureMapping columnObjectName="Join_1_4" columnName="StartlineDistanceRank"/>
</measure>
<measure id="StartlineSpeedRank" order="74" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="StartlineSpeedRank"/>
<measureMapping columnObjectName="Join_1_4" columnName="StartlineSpeedRank"/>
<measure id="distanceSailedRank" order="80" aggregationType="sum" measureType="simple">
<descriptions defaultDescription="Distance Sailed Rank"/>
<measureMapping columnObjectName="Join_1_5" columnName="distanceSailedRank"/>
</measure>
</baseMeasures>
<calculatedMeasures>
<measure id="rankGain" order="34" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<measure id="relRankOneBased" order="33" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<descriptions defaultDescription="Rank (%)"/>
<formula>FLOOR(100 * &quot;rankOneBased&quot;/&quot;raceCompetitorCount&quot;)</formula>
</measure>
<measure id="relStartRank" order="35" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<descriptions defaultDescription="Start Rank (%)"/>
<formula>FLOOR(100 * &quot;startRank&quot;/&quot;raceCompetitorCount&quot;)</formula>
</measure>
<measure id="relFirstMarkRankOneBased" order="38" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<descriptions defaultDescription="Rank at 1st Mark (%)"/>
<formula>FLOOR(100 * &quot;firstMarkRankOneBased&quot;/&quot;raceCompetitorCount&quot;)</formula>
</measure>
<measure id="rankGain" order="39" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<descriptions defaultDescription="Rank Gain / Loss (Start - Finish)"/>
<formula>CASE &quot;startRank&quot;
WHEN 0 then 0
@@ -752,46 +908,62 @@
END</formula>
</measure>
<measure id="relRankOneBased" order="35" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<descriptions defaultDescription="Rank (%)"/>
<formula>FLOOR(100 * &quot;rankOneBased&quot;/&quot;raceCompetitorCount&quot;)</formula>
</measure>
<measure id="relStartRank" order="36" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<descriptions defaultDescription="Start Rank (%)"/>
<formula>FLOOR(100 * &quot;startRank&quot;/&quot;raceCompetitorCount&quot;)</formula>
<measure id="relRankGain" order="40" aggregationType="sum" measureType="simple" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL" displayFolder="Rank">
<descriptions defaultDescription="Rank Gain / Loss (Start - Finish %)"/>
<formula>FLOOR(100 * &quot;rankGain&quot;/&quot;raceCompetitorCount&quot;)</formula>
</measure>
<measure id="relFirstMarkRankOneBased" order="37" aggregationType="sum" measureType="simple" datatype="INTEGER" displayFolder="Rank" expressionLanguage="SQL">
<descriptions defaultDescription="Rank at 1st Mark (%)"/>
<formula>FLOOR(100 * &quot;firstMarkRankOneBased&quot;/&quot;raceCompetitorCount&quot;)</formula>
<measure id="avgStartDelayInSeconds" order="44" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL" displayFolder="Startdelay">
<descriptions defaultDescription="Avg Start Delay"/>
<fixedUnit>s</fixedUnit>
<formula>&quot;startDelayInSeconds&quot;/&quot;competitorRaces&quot;</formula>
</measure>
<measure id="avgStartlineDistanceInMeters" order="42" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL">
<descriptions defaultDescription="Avg Distance from Startline at Start"/>
<measure id="avgStartlineDistanceInMeters" order="48" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL" displayFolder="StartlineDistance">
<descriptions defaultDescription="Avg Startline Distance"/>
<fixedUnit>m</fixedUnit>
<formula>&quot;distanceFromStartLineInMetersAtStart&quot;/&quot;competitorRaces&quot;</formula>
</measure>
<measure id="avgStartlineSpeedInKnots" order="44" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL">
<measure id="avgWindwardStartlineDistanceInMeters" order="52" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL" semanticType="quantity">
<descriptions defaultDescription="Avg Windward Startline Distance"/>
<fixedUnit>m</fixedUnit>
<formula>&quot;windwardDistanceFromStartLineInMetersAtStart&quot;/&quot;competitorRaces&quot;</formula>
</measure>
<measure id="avgStartlineSpeedInKnots" order="55" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL" displayFolder="StartlineSpeed">
<descriptions defaultDescription="Avg Speed when crossing Startline"/>
<fixedUnit>kn</fixedUnit>
<formula>&quot;speedWhenCrossingStartLineInKnots&quot;/&quot;competitorRaces&quot;</formula>
</measure>
<measure id="distanceSailedInNM" order="46" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="2" expressionLanguage="SQL">
<measure id="distanceSailedInNM" order="59" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="2" expressionLanguage="SQL" displayFolder="RaceStat">
<descriptions defaultDescription="Distance Sailed in Nautical Miles"/>
<fixedUnit>nmi</fixedUnit>
<formula>&quot;distanceSailedInMeters&quot; * 0.0005399568</formula>
</measure>
<measure id="avgSpeedInKnots" order="53" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="2" expressionLanguage="SQL">
<measure id="avgSpeedInKnots" order="66" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="2" expressionLanguage="SQL">
<descriptions defaultDescription="Avg Speed in Knots"/>
<fixedUnit>kn</fixedUnit>
<formula>CASE &quot;elapsedTimeInSeconds&quot;
@@ -801,27 +973,39 @@
</formula>
</measure>
<measure id="avgNumberOfTacks" order="60" aggregationType="sum" measureType="simple" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL" displayFolder="Maneuver">
<measure id="avgNumberOfTacks" order="73" aggregationType="sum" measureType="simple" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL" displayFolder="Maneuver">
<descriptions defaultDescription="Avg Number of Tacks"/>
<formula>&quot;numberOfTacks&quot;/&quot;competitorRaces&quot;</formula>
</measure>
<measure id="avgNumberOfGybes" order="61" aggregationType="sum" measureType="simple" datatype="DOUBLE" expressionLanguage="SQL" presentationScale="1" displayFolder="Maneuver">
<measure id="avgNumberOfGybes" order="74" aggregationType="sum" measureType="simple" datatype="DOUBLE" expressionLanguage="SQL" presentationScale="1" displayFolder="Maneuver">
<descriptions defaultDescription="Avg Number of Gybes"/>
<formula>&quot;numberOfGybes&quot;/&quot;competitorRaces&quot;</formula>
</measure>
<measure id="avgNumberOfPenaltyCircles" order="62" aggregationType="sum" measureType="simple" datatype="DOUBLE" presentationScale="1" displayFolder="Maneuver" expressionLanguage="SQL">
<measure id="avgNumberOfPenaltyCircles" order="75" aggregationType="sum" measureType="simple" datatype="DOUBLE" presentationScale="1" displayFolder="Maneuver" expressionLanguage="SQL">
<descriptions defaultDescription="Avg Number of Penalties"/>
<formula>&quot;numberOfPenaltyCircles&quot;/&quot;competitorRaces&quot;</formula>
</measure>
<measure id="competitorRaces" order="63" aggregationType="sum" measureType="simple" calculatedMeasureType="counter" aggregatable="true" datatype="BIGINT" length="">
<measure id="competitorRaces" order="76" aggregationType="sum" measureType="simple" calculatedMeasureType="counter" aggregatable="true" datatype="BIGINT" length="">
<descriptions defaultDescription="CompetitorRaces"/>
<exceptionAggregation>
<attribute attributeName="regatta"/>
@@ -831,8 +1015,11 @@
<formula>1</formula>
</measure>
<measure id="competitorCount" order="64" aggregationType="sum" measureType="simple" calculatedMeasureType="counter" aggregatable="true" datatype="BIGINT" length="">
<measure id="competitorCount" order="77" aggregationType="sum" measureType="simple" calculatedMeasureType="counter" aggregatable="true" datatype="BIGINT" length="">
<descriptions defaultDescription="Number of Competitors"/>
<exceptionAggregation>
<attribute attributeName="competitorId"/>
@@ -840,8 +1027,11 @@
<formula>1</formula>
</measure>
<measure id="raceCount" order="65" aggregationType="sum" measureType="simple" calculatedMeasureType="counter" aggregatable="true" datatype="BIGINT" length="">
<measure id="raceCount" order="78" aggregationType="sum" measureType="simple" calculatedMeasureType="counter" aggregatable="true" datatype="BIGINT" length="">
<descriptions defaultDescription="Number of Races"/>
<exceptionAggregation>
<attribute attributeName="regatta"/>
@@ -850,18 +1040,10 @@
<formula>1</formula>
</measure>
<measure id="relRankGain" order="67" aggregationType="sum" measureType="simple" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL">
<descriptions defaultDescription="Rank Gain / Loss (%)"/>
<formula>FLOOR(100 * &quot;rankGain&quot;/&quot;raceCompetitorCount&quot;)</formula>
</measure>
<measure id="avgStartDelayInSeconds" order="68" semanticType="quantity" aggregationType="sum" measureType="quantity" datatype="DOUBLE" presentationScale="1" expressionLanguage="SQL">
<descriptions defaultDescription="Avg Start Delay"/>
<fixedUnit>s</fixedUnit>
<formula>&quot;startDelayInSeconds&quot;/&quot;competitorRaces&quot;</formula>
</measure></calculatedMeasures>
</measure></calculatedMeasures>
<restrictedMeasures/>
<localDimensions>
<localDimension id="EventHierarchy">
@@ -921,7 +1103,7 @@
<upperLeftCorner x="108" y="511"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape expanded="true" modelObjectName="RaceStatsAggregation" modelObjectNameSpace="CalculationView">
<shape expanded="true" modelObjectName="RaceStatAverages" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="92" y="406"/>
<rectangleSize height="30" width="192"/>
</shape>
@@ -929,6 +1111,11 @@
<upperLeftCorner x="-98" y="406"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape expanded="true" modelObjectName="CompLowestRank" modelObjectNameSpace="CalculationView">
<upperLeftCorner x="980" y="406"/>
<rectangleSize height="30" width="160"/>
</shape>
<shape expanded="true" modelObjectName="Join_1" modelObjectNameSpace="CalculationView">
@@ -939,22 +1126,27 @@
<upperLeftCorner x="-291" y="62"/>
<rectangleSize width="269"/>
</shape>
<shape modelObjectName="RaceStatsProjection" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput" multiJoinViewNodeName="Join_1">
<upperLeftCorner x="157" y="62"/>
<rectangleSize width="273"/>
</shape>
<shape modelObjectName="RaceStatRanks" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput" multiJoinViewNodeName="Join_1">
<upperLeftCorner x="388" y="320"/>
<upperLeftCorner x="1210" y="413"/>
<rectangleSize width="194"/>
</shape>
<shape modelObjectName="RaceStatsProjection" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput" multiJoinViewNodeName="Join_1">
<upperLeftCorner x="731" y="21"/>
<rectangleSize width="273"/>
</shape>
<shape modelObjectName="CompLowestRank" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput" multiJoinViewNodeName="Join_1">
<upperLeftCorner x="1224" y="256"/>
<rectangleSize width="168"/>
</shape>
<shape modelObjectName="RaceEventView" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput" multiJoinViewNodeName="Join_1">
<upperLeftCorner x="591" y="62"/>
<upperLeftCorner x="796" y="54"/>
<rectangleSize width="205"/>
</shape>
<shape modelObjectName="RaceStatsAggregation" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput" multiJoinViewNodeName="Join_1">
<upperLeftCorner x="868" y="62"/>
<rectangleSize width="191"/>
<shape modelObjectName="RaceStatAverages" modelObjectNameSpace="Join_1" modelObjectType="JoinNodeInput" multiJoinViewNodeName="Join_1">
<upperLeftCorner x="1039" y="54"/>
<rectangleSize width="315"/>
</shape></shapes>
</layout>
</Calculation:scenario>