我每天都有包含价格的行,例如股票价格或者士力架的价格并不重要
date = dd.mm.yyyy
row | date | price
1 | 1.1.2015 | 23.3
2 | 4.5.2015 | 25.8
3 | 6.9.2015 | 27.3
4 | 31.12.2015 | 28.1
...
5 | 1.1.2016 | 28.1
6 | 7.10.2016 | 29.3
7 | 2.11.2016 | 30.3
8 | 31.12.2016 | 33.3
...
9 | 1.1.2017 | 33.3
10 | 3.1.2017 | 39.7
11 | 15.9.2017 | 41.2
在这个例子中,1.1和31.12之间的日期并不重要。我只关注一年中第一天的价格,然后是今年的最后一天。
示例结果将用于此数据:
row | year | return
1 | 2015 | 20%
2 | 2016 | 23%
3 | 2017 | 20%
如何将行分组为年,还可以计算具有日期的行之间的差异:当前年度的第一天1.1和31.12年的最后一天?
答案 0 :(得分:0)
按年份分组,然后您可以找到一年中第一天的最高价格(<Rectangle VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Fill="Gray"
Margin="-1 0 0 0" Width="1"/>
)和一年中最后一天的最低价格(MAX( price ) KEEP ( DENSE_RANK FIRST ORDER BY year )
)并计算这两个值之间的百分比增加:
MIN( price ) KEEP ( DENSE_RANK LAST ORDER BY year )
答案 1 :(得分:0)
我想你只想要计算一年中第一年和最后一年的价值:
uint8_t GetByte(const char* pHexByte)
{
char c = pHexByte[0];
uint8_t Result = (c <= '9') ? c - '0' : c - '@';
c = pHexByte[1];
Result = (Result << 4) | (c <= '9') ? c - '0' : c - '@';
return Result;
}
bool_t HexStringToBinary(uint8_t *pBinary, size_t BufferSize, const char*pHexString)
{
while (pHexString[0] && pHexString[1])
{
uint8_t DataByte = GetByte(pHexString);
if (!BufferSize) return FALSE;
*pBinary++ = DataByte;
BufferSize--;
pHexString += 2;
}
return TRUE;
}
注意:这假定您需要数据中的第一天和最后一天,而不是1月1日和12月31日。