sql - 选择sql查询以按嵌套json分组
问题描述
我从选择查询中得到的数据是这样的
[{
id: 'CB2FD8B7-7E6D-4BF3-8E73-70D41FFBE456',
products: '[{"product_id":"22061DA1-5D64-475A-B36A-140ECFE8D6B7"}]',
falconpay_api_response: null,
dhl_updated_by: null
}, ... ]
我正在做的是获取orders
然后解析products
属性并提取product_id
和计算 product_id 在不同 json 对象的数量中出现的次数。如果要获取的行数为数千,然后提取 id 并计算其出现次数,这将非常耗时。是否有任何有效的方法来使用GROUP by
和直接product_id
获取数千行的出现。
解决方案
你可以使用它!
var data = [{
id: 'CB2FD8B7-7E6D-4BF3-8E73-70D41FFBE451',
products: [{"product_id":"22061DA1-5D64-475A-B36A-140ECFE8D6B7"}],
falconpay_api_response: null,
dhl_updated_by: null
},{
id: 'CB2FD8B7-7E6D-4BF3-8E73-70D41FFBE452',
products: [{"product_id":"22061DA1-5D64-475A-B36A-140ECFE8D6B7"},{"product_id":"22061DA1-5D64-475A-B36A-140ECFE8D6K7"}],
falconpay_api_response: null,
dhl_updated_by: null
},{
id: 'CB2FD8B7-7E6D-4BF3-8E73-70D41FFBE453',
products: [{"product_id":"22061DA1-5D64-475A-B36A-140ECFE8D6K7"}],
falconpay_api_response: null,
dhl_updated_by: null
},{
id: 'CB2FD8B7-7E6D-4BF3-8E73-70D41FFBE454',
products: [{"product_id":"22061DA1-5D64-475A-B36A-140ECFE8D6B7"}],
falconpay_api_response: null,
dhl_updated_by: null
}];
var a =[];
data.forEach(function(order){
order.products.forEach(function(product){
if(a[product.product_id] == undefined){
a[product.product_id] = [];
}
a[product.product_id].push(order);
})
});
console.log(a);
推荐阅读
- c++ - 转换类型
布尔,怎么了? - indexing - 设置索引!没有为 WeakRefStrings 定义。SpringArray{String,1}
- c# - 如何将端点映射到 ASP 中的静态文件。网络核心?
- php - Singleton 在 Laravel 中反复运行
- twilio - 使用 CAD 的 Twilio Studio 支付连接器
- java - 在java中设置运行while循环的限制
- azure-data-factory - 映射数据流错误流未连接或列不可用
- scheme - 如何将流转换为全局流?
- pdf-generation - R markdown Stargazer: knit to pdf issue: Executed haulted
- c - Reverse String with a pointer to a function, which executes the String reverse