You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

55 lines
1.5 KiB

{
"properties" : { },
"id" : "8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3",
"script" : null,
"groupId" : "f8e3d2c1b0a94e5f8a7b6c5d4e3f2a1",
"name" : "采购商户来源分析",
"createTime" : 1780881000000,
"updateTime" : 1781376000000,
"lock" : null,
"createBy" : "admin",
"updateBy" : "admin",
"path" : "/buyer-source-analysis",
"method" : "GET",
"parameters" : [ ],
"options" : [ ],
"requestBody" : "",
"headers" : [ ],
"paths" : [ ],
"responseBody" : null,
"description" : "采购商户来源分析:gov_count_order_total 按 buyer_place 统计采购商户数 Top9,一条记录一单。",
"requestBodyDefinition" : null,
"responseBodyDefinition" : null
}
================================
// gov_count_order_total:一条记录 = 一笔订单
// 采购地区:buyer_place
// 采购商户数:COUNT(DISTINCT buyer_name),buyer_name 为空时按 id 计 1 户
var sql = """
SELECT
buyer_place AS name,
buyer_place AS full_name,
COUNT(DISTINCT COALESCE(NULLIF(TRIM(buyer_name), ''), id)) AS value,
buyer_place || '采购商户' AS description
FROM gov_count_order_total
WHERE buyer_place IS NOT NULL
AND TRIM(buyer_place) <> ''
GROUP BY buyer_place
ORDER BY value DESC, buyer_place
LIMIT 9
"""
var rows = db.select(sql)
var result = []
for (row in rows) {
result.push({
name: row.name,
value: row.value != null ? row.value : 0,
fullName: row.fullName ? row.fullName : (row.full_name ? row.full_name : ''),
description: row.description ? row.description : '采购商户'
})
}
return result