假设我有以下数据
SqlUnixTime BID ASK VALID ASSET_ID
1504900871 101.50 101.6 Y XY1
1504900870 0 101.6 Y XY1
1504900871 101.50 20 N XY1
...
在bid&ask列中,我可以有一个有效的价格、一个0(表示没有数据)或一个无效的价格(见最后一行)。
我想计算30天的平均值。我已使用以下查询成功处理0情况:
Select ASSET_ID, AVG(NULLIF(BID,0)) as AVG_BID_30D, AVG(NULLIF(ASK,0)) as AVG_ASK_30D FROM myDB.myTable where SqlUnixTime > 1504900870 GROUP BY ASSET_ID;
但是,如果valid=“y”,我将如何平均这些值。我想在最后放一个where子句,但它可能不会选择无效的资产标识?我只想它有一个空值?
1条答案
按热度按时间x33g5p2x1#
更新
按(asset\u id,valid='y')分组,然后按valid='y'再次分组结果
我想会有用的。
.