我正在运行MariaDB 10.2.29,并开始探索JSON数据类型。我正在尝试了解如何按动态JSON键分组,并总结它们的嵌套值。例如,该表在“数据”字段条目中包含以下内容:
MariaDB [vstats]> select data from top_domains where vtime >= '1573666140' and vtime <= '1573666200' limit 2\G
*************************** 1. row ***************************
data: {"domain1.com":{"total":"260","cached":"153"},"domain2.com":{"total":"1501","cached":"1170"},"domain3.com":{"total":"212","cached":"190"},"domain4.com":{"total":"1206","cached":"1118"},"domain5.com":{"total":"353","cached":"285"},"domain6.com":{"total":"216","cached":"41"},"domain7.com":{"total":"112","cached":"78"},"domain8.com":{"total":"220","cached":"194"},"domain9.com":{"total":"95","cached":"62"},"domain10.com":{"total":"99","cached":"18"}}
*************************** 2. row ***************************
data: {"domain1.com":{"total":"240","cached":"166"},"domain2.com":{"total":"1644","cached":"1279"},"domain3.com":{"total":"195","cached":"174"},"domain4.com":{"total":"1276","cached":"1185"},"domain12.com":{"total":"84","cached":"72"},"domain5.com":{"total":"373","cached":"258"},"domain6.com":{"total":"92","cached":"13"},"domain7.com":{"total":"148","cached":"102"},"domain11.com":{"total":"217","cached":"25"},"domain8.com":{"total":"380","cached":"345"}}
2 rows in set (0.00 sec)
MariaDB [vstats]>
“ vtime”字段包含记录统计信息时的纪元值。我想要得到的是一个JSON对象,该对象按域名/ JSON密钥分组,并包含“ total”和“ cached”值的总和。我使用针对json_keys(data,'$')
值的嵌套选择开始了一条路径,但是对于遍历数千个条目而言,它似乎并不是最佳选择。
我想要使用JSON表类型的主要原因是:
任何指针将不胜感激。