0300valid.mql 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. -- 查询指定 DB 下的 表
  2. -- /DB/table 与 class 命名发生冲突时,class 优先级高于 /DB/table
  3. select * from /mdbxdb/sqlite_master
  4. /**
  5. output()
  6. **/
  7. ;
  8. select * from /mdbxdb/T__project_0_1000119_0_harness_0_draft__paper_0_trade_0_record
  9. limit 1
  10. /**
  11. output()
  12. count(1)
  13. **/
  14. ;
  15. -- 1cpu 4GB 普通机械硬盘
  16. -- 只查 id 13s
  17. -- 查两个字段 id,project_1000119_harness_draft_trades_on 45s
  18. select id,project_1000119_harness_draft_trades_on from /mdbxdb/T__project_0_1000119_0_harness_0_draft__paper_0_trade_0_record
  19. /**
  20. outputcount()
  21. count(920706)
  22. **/
  23. ;
  24. -- select * from /mdbxdb/T__project_0_1000119_0_harness_0_draft__paper_0_trade_0_record
  25. -- where project_1000119_harness_draft_trades_on in ('project_1000119_harness_draft_trade_instrument:INSTRUMENT_000000042')
  26. -- /**
  27. -- output()
  28. -- **/
  29. -- ;
  30. -- 固定映射(指定固定条件或无条件映射数据),
  31. -- 当主类中没有数据时,查询时自动赋值默认对象属性:
  32. -- class: 类名/mdbx/dba1,
  33. -- id: 组合映射表主键为字符串,
  34. -- name: 与id相同,
  35. -- day: 当前日期,
  36. -- vtime: 当前时间
  37. -- 映射表查询结果按 id 匹配关联主对象
  38. -- 当主类中存在数据时,直接按主对象 id 与 组合映射表主键得到的字符串 进行匹配关联主对象
  39. -- rdb 输出为二维数组,兼容 promdb 等已有 bucket 类型,输出字段顺序与 bucket 定义的字段顺序或相应表字段定义顺序一致
  40. -- rdb 数据 与 id 一一对应,实际 二维数组中的第一维 最多只有 一个元素
  41. -- 支持 bucket 链式表达式
  42. select id,rdb from /mdbx/dba1
  43. /**
  44. output()
  45. **/
  46. ;
  47. -- 条件映射
  48. -- 主类中需要有数据,按指定条件映射数据,条件与主类数据有关联
  49. -- xrdb 输出为二维数组,兼容 promdb 等已有 bucket 类型,输出字段顺序与 bucket 定义的字段顺序一致
  50. -- xrdb 数据 与 id 为多对一关系,默认输出第一条记录,需要在 bucket 定义时明确数据唯一排序,否则数据输出可能不稳定
  51. -- 支持 bucket 链式表达式
  52. select * from /mdbx/dba2
  53. /**
  54. output()
  55. **/
  56. ;
  57. -- 条件映射
  58. -- 主类中需要有数据,按指定条件映射数据,条件与主类数据有关联
  59. -- xrdb 输出为二维数组,兼容 promdb 等已有 bucket 类型,输出字段顺序与 bucket 定义的字段顺序一致
  60. -- xrdb 数据 与 id 为多对一关系
  61. -- 支持 bucket 链式表达式
  62. select id,xvarchar,xrdb.find(整数>1) from /mdbx/dba2
  63. /**
  64. output()
  65. **/
  66. ;
  67. -- 条件映射
  68. -- 主类中需要有数据,按指定条件映射数据,条件与主类数据有关联
  69. -- xrdb 输出为二维数组,兼容 promdb 等已有 bucket 类型,输出字段顺序与 bucket 定义的字段顺序一致
  70. -- xrdb 数据 与 id 为多对一关系
  71. -- 支持 bucket 链式表达式
  72. select id,xvarchar,xrdb.find(整数>1).groupby("文本").count() from /mdbx/dba2
  73. /**
  74. output()
  75. **/
  76. ;
  77. -- 条件映射
  78. -- 主类中需要有数据,按指定条件映射数据,条件与主类数据有关联
  79. -- xrdb 输出为二维数组,兼容 promdb 等已有 bucket 类型,输出字段顺序与 bucket 定义的字段顺序一致
  80. -- xrdb 数据 与 id 为多对一关系
  81. -- 支持 bucket 链式表达式
  82. -- 支持 assert(AEXP)
  83. select id,xvarchar,xrdb.find(整数>1).groupby("文本").count() from /mdbx/dba2 where xrdb.avg("浮点").groupby("字符串").assert(avg>0)
  84. /**
  85. output()
  86. **/
  87. ;
  88. -- 条件映射
  89. -- 主类中需要有数据,按指定条件映射数据,条件与主类数据有关联
  90. -- TODO 重组 xrdb 指定字段,输出平表
  91. -- TODO 允许 bucket 与普通类操作方式一致
  92. -- TODO assert(AEXP) 可转换为 id in bucketfield.exps(...).find(AEXP).ids(),
  93. -- TODO 相同的链式表达式 bucketfield.exps(...) 可以复用中间结果
  94. -- select id, xrdb.字符串, xrdb.整数.mod(10) from /mdbx/dba2 where xrdb.整数 > 0
  95. /**
  96. output()
  97. **/
  98. ;