mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
(improvement) improve evalution accuracy (#727)
This commit is contained in:
@@ -77,7 +77,7 @@ public abstract class BaseSemanticCorrector implements SemanticCorrector {
|
|||||||
protected void addFieldsToSelect(SemanticParseInfo semanticParseInfo, String correctS2SQL) {
|
protected void addFieldsToSelect(SemanticParseInfo semanticParseInfo, String correctS2SQL) {
|
||||||
Set<String> selectFields = new HashSet<>(SqlSelectHelper.getSelectFields(correctS2SQL));
|
Set<String> selectFields = new HashSet<>(SqlSelectHelper.getSelectFields(correctS2SQL));
|
||||||
Set<String> needAddFields = new HashSet<>(SqlSelectHelper.getGroupByFields(correctS2SQL));
|
Set<String> needAddFields = new HashSet<>(SqlSelectHelper.getGroupByFields(correctS2SQL));
|
||||||
needAddFields.addAll(SqlSelectHelper.getOrderByFields(correctS2SQL));
|
//needAddFields.addAll(SqlSelectHelper.getOrderByFields(correctS2SQL));
|
||||||
|
|
||||||
// If there is no aggregate function in the S2SQL statement and
|
// If there is no aggregate function in the S2SQL statement and
|
||||||
// there is a data field in 'WHERE' statement, add the field to the 'SELECT' statement.
|
// there is a data field in 'WHERE' statement, add the field to the 'SELECT' statement.
|
||||||
|
|||||||
@@ -5,13 +5,21 @@ import com.tencent.supersonic.chat.api.pojo.SemanticSchema;
|
|||||||
import com.tencent.supersonic.chat.api.pojo.response.SqlInfo;
|
import com.tencent.supersonic.chat.api.pojo.response.SqlInfo;
|
||||||
import com.tencent.supersonic.chat.core.pojo.QueryContext;
|
import com.tencent.supersonic.chat.core.pojo.QueryContext;
|
||||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||||
|
import com.tencent.supersonic.common.util.ContextUtils;
|
||||||
import com.tencent.supersonic.common.util.jsqlparser.SqlAddHelper;
|
import com.tencent.supersonic.common.util.jsqlparser.SqlAddHelper;
|
||||||
import com.tencent.supersonic.common.util.jsqlparser.SqlSelectHelper;
|
import com.tencent.supersonic.common.util.jsqlparser.SqlSelectHelper;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.Dim;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||||
|
import com.tencent.supersonic.headless.api.pojo.response.ViewResp;
|
||||||
|
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||||
|
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||||
|
import com.tencent.supersonic.headless.server.service.ViewService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -23,11 +31,35 @@ public class GroupByCorrector extends BaseSemanticCorrector {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doCorrect(QueryContext queryContext, SemanticParseInfo semanticParseInfo) {
|
public void doCorrect(QueryContext queryContext, SemanticParseInfo semanticParseInfo) {
|
||||||
|
Boolean addGroupBy = addGroupBy(queryContext, semanticParseInfo);
|
||||||
|
log.info("addGroupBy:{}", addGroupBy);
|
||||||
|
if (!addGroupBy) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
addGroupByFields(queryContext, semanticParseInfo);
|
addGroupByFields(queryContext, semanticParseInfo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Boolean addGroupBy(QueryContext queryContext, SemanticParseInfo semanticParseInfo) {
|
||||||
|
Long viewId = semanticParseInfo.getViewId();
|
||||||
|
ViewService viewService = ContextUtils.getBean(ViewService.class);
|
||||||
|
ModelService modelService = ContextUtils.getBean(ModelService.class);
|
||||||
|
ViewResp viewResp = viewService.getView(viewId);
|
||||||
|
List<Long> modelIds = viewResp.getViewDetail().getViewModelConfigs().stream().map(config -> config.getId()
|
||||||
|
).collect(Collectors.toList());
|
||||||
|
MetaFilter metaFilter = new MetaFilter(modelIds);
|
||||||
|
List<ModelResp> modelRespList = modelService.getModelList(metaFilter);
|
||||||
|
for (ModelResp modelResp : modelRespList) {
|
||||||
|
List<Dim> dimList = modelResp.getModelDetail().getDimensions();
|
||||||
|
for (Dim dim : dimList) {
|
||||||
|
if (Objects.nonNull(dim.getTypeParams()) && dim.getTypeParams().getTimeGranularity().equals("none")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private void addGroupByFields(QueryContext queryContext, SemanticParseInfo semanticParseInfo) {
|
private void addGroupByFields(QueryContext queryContext, SemanticParseInfo semanticParseInfo) {
|
||||||
Long viewId = semanticParseInfo.getViewId();
|
Long viewId = semanticParseInfo.getViewId();
|
||||||
//add dimension group by
|
//add dimension group by
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class HavingCorrector extends BaseSemanticCorrector {
|
|||||||
addHaving(queryContext, semanticParseInfo);
|
addHaving(queryContext, semanticParseInfo);
|
||||||
|
|
||||||
//add having expression filed to select
|
//add having expression filed to select
|
||||||
addHavingToSelect(semanticParseInfo);
|
//addHavingToSelect(semanticParseInfo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -484,7 +484,15 @@ public class SqlSelectHelper {
|
|||||||
SelectBody selectBody = selectStatement.getSelectBody();
|
SelectBody selectBody = selectStatement.getSelectBody();
|
||||||
if (selectBody instanceof PlainSelect) {
|
if (selectBody instanceof PlainSelect) {
|
||||||
PlainSelect plainSelect = (PlainSelect) selectBody;
|
PlainSelect plainSelect = (PlainSelect) selectBody;
|
||||||
|
if (plainSelect.getFromItem() instanceof Table) {
|
||||||
return (Table) plainSelect.getFromItem();
|
return (Table) plainSelect.getFromItem();
|
||||||
|
}
|
||||||
|
if (plainSelect.getFromItem() instanceof SubSelect) {
|
||||||
|
|
||||||
|
SubSelect subSelect = (SubSelect) plainSelect.getFromItem();
|
||||||
|
return getTable(subSelect.getSelectBody().toString());
|
||||||
|
}
|
||||||
|
|
||||||
} else if (selectBody instanceof SetOperationList) {
|
} else if (selectBody instanceof SetOperationList) {
|
||||||
SetOperationList setOperationList = (SetOperationList) selectBody;
|
SetOperationList setOperationList = (SetOperationList) selectBody;
|
||||||
if (!CollectionUtils.isEmpty(setOperationList.getSelects())) {
|
if (!CollectionUtils.isEmpty(setOperationList.getSelects())) {
|
||||||
|
|||||||
@@ -5,4 +5,4 @@
|
|||||||
|
|
||||||
# 评测意义
|
# 评测意义
|
||||||
|
|
||||||
制定评估工具方便supersonic快速对接其他模型、更改参数配置,对于提示词或代码更改的影响至关重要,可以帮助我们了解这些变化是否会提高或降低准确率、响应速度。
|
制定评测工具方便supersonic快速对接其他大模型、更改参数配置,对于评估提示词、代码更改所带来的影响至关重要,可以帮助我们了解这些变化是否会提高或降低准确率、响应速度。
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import jwt
|
|||||||
|
|
||||||
|
|
||||||
def get_authorization():
|
def get_authorization():
|
||||||
exp = time.time() + 1000
|
exp = time.time() + 100000
|
||||||
token= jwt.encode({"token_user_name": "admin","exp": exp}, "secret", algorithm="HS512")
|
token= jwt.encode({"token_user_name": "admin","exp": exp}, "secret", algorithm="HS512")
|
||||||
return "Bearer "+token
|
return "Bearer "+token
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ def get_pred_sql(query,url,agentId,chatId,authorization,default_sql):
|
|||||||
header["Authorization"] =authorization
|
header["Authorization"] =authorization
|
||||||
try:
|
try:
|
||||||
result = requests.post(url=url, headers=header, json=data)
|
result = requests.post(url=url, headers=header, json=data)
|
||||||
print(result.json())
|
#print(result.json())
|
||||||
print(result.json()["traceId"])
|
print(result.json()["traceId"])
|
||||||
if result.status_code == 200:
|
if result.status_code == 200:
|
||||||
data = result.json()["data"]
|
data = result.json()["data"]
|
||||||
@@ -68,7 +68,7 @@ def get_pred_result():
|
|||||||
for i in range(0,len(questions)):
|
for i in range(0,len(questions)):
|
||||||
pred_sql=get_pred_sql(questions[i],url,agent_id,chat_id,authorization,default_sql)
|
pred_sql=get_pred_sql(questions[i],url,agent_id,chat_id,authorization,default_sql)
|
||||||
pred_sql_list.append(pred_sql)
|
pred_sql_list.append(pred_sql)
|
||||||
time.sleep(30)
|
time.sleep(60)
|
||||||
write_sql(pred_sql_path, pred_sql_list)
|
write_sql(pred_sql_path, pred_sql_list)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -56,10 +56,10 @@ def build_internet(path,day):
|
|||||||
VALUES (?, ?, ?,?, ?, ?,?)
|
VALUES (?, ?, ?,?, ?, ?,?)
|
||||||
'''
|
'''
|
||||||
data = [
|
data = [
|
||||||
(imp_date,"item_enterprise_13_136","阿里云","2009年9月10日","item_enterprise_13_134","张勇",50000000),
|
(imp_date,"item_enterprise_13_136","阿里云","2009年9月10日","item_enterprise_13_132","张勇",50000000),
|
||||||
(imp_date,"item_enterprise_13_137","天猫","2012年1月11日","item_enterprise_13_134","张勇",100000000),
|
(imp_date,"item_enterprise_13_137","天猫","2012年1月11日","item_enterprise_13_132","张勇",100000000),
|
||||||
(imp_date,"item_enterprise_13_138","腾讯游戏","2003","item_enterprise_13_131","马化腾",50000000),
|
(imp_date,"item_enterprise_13_138","腾讯游戏","2003","item_enterprise_13_133","马化腾",50000000),
|
||||||
(imp_date,"item_enterprise_13_139","度小满","2018","item_enterprise_13_132","朱光",100000000),
|
(imp_date,"item_enterprise_13_139","度小满","2018","item_enterprise_13_131","朱光",100000000),
|
||||||
(imp_date,"item_enterprise_13_140","京东金融","2017","item_enterprise_13_134","刘强东",100000000)
|
(imp_date,"item_enterprise_13_140","京东金融","2017","item_enterprise_13_134","刘强东",100000000)
|
||||||
]
|
]
|
||||||
cursor.executemany(insert_data_query, data)
|
cursor.executemany(insert_data_query, data)
|
||||||
@@ -83,10 +83,10 @@ def build_internet(path,day):
|
|||||||
'''
|
'''
|
||||||
data = [
|
data = [
|
||||||
(imp_date,"item_enterprise_13_131","item_enterprise_13_139",0.1,0.1,0.3),
|
(imp_date,"item_enterprise_13_131","item_enterprise_13_139",0.1,0.1,0.3),
|
||||||
(imp_date,"item_enterprise_13_134","item_enterprise_13_138",0.8,0.8,0.6),
|
(imp_date,"item_enterprise_13_133","item_enterprise_13_138",0.8,0.8,0.6),
|
||||||
(imp_date,"item_enterprise_13_135","item_enterprise_13_139",0.8,0.8,0.6),
|
(imp_date,"item_enterprise_13_134","item_enterprise_13_140",0.8,0.8,0.6),
|
||||||
(imp_date,"item_enterprise_13_131","item_enterprise_13_137",0.8,0.8,0.6),
|
(imp_date,"item_enterprise_13_132","item_enterprise_13_137",0.8,0.8,0.6),
|
||||||
(imp_date,"item_enterprise_13_135","item_enterprise_13_137",0.1,0.1,0.3)
|
(imp_date,"item_enterprise_13_132","item_enterprise_13_136",0.1,0.1,0.3)
|
||||||
]
|
]
|
||||||
cursor.executemany(insert_data_query, data)
|
cursor.executemany(insert_data_query, data)
|
||||||
conn.commit()
|
conn.commit()
|
||||||
@@ -113,7 +113,7 @@ def build_internet(path,day):
|
|||||||
(imp_date, "2019", "item_enterprise_13_136", 100000000000, 50000000000, 1, 0.5),
|
(imp_date, "2019", "item_enterprise_13_136", 100000000000, 50000000000, 1, 0.5),
|
||||||
(imp_date, "2018", "item_enterprise_13_137", 100000000000, 50000000000, 1, -0.1),
|
(imp_date, "2018", "item_enterprise_13_137", 100000000000, 50000000000, 1, -0.1),
|
||||||
(imp_date, "2018", "item_enterprise_13_139", 500000000, 50000000000, 0.1, 0.5),
|
(imp_date, "2018", "item_enterprise_13_139", 500000000, 50000000000, 0.1, 0.5),
|
||||||
(imp_date, "2018", "item_enterprise_13_138", 100000000000, -300000000, 0.1, 0.5)
|
(imp_date, "2018", "item_enterprise_13_140", 100000000000, -300000000, 0.1, 0.5)
|
||||||
]
|
]
|
||||||
cursor.executemany(insert_data_query, data)
|
cursor.executemany(insert_data_query, data)
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
|||||||
@@ -38,10 +38,6 @@ SELECT T1.brand_name, T2.company_name, T1.registered_capital, T2.headquarter_add
|
|||||||
SELECT T1.brand_name, T2.company_name, T1.legal_representative, T2.headquarter_address FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id internet
|
SELECT T1.brand_name, T2.company_name, T1.legal_representative, T2.headquarter_address FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id internet
|
||||||
SELECT T2.company_name, T2.headquarter_address FROM company_revenue AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id internet
|
SELECT T2.company_name, T2.headquarter_address FROM company_revenue AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id internet
|
||||||
SELECT T2.company_name, T2.annual_turnover FROM company_revenue AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id internet
|
SELECT T2.company_name, T2.annual_turnover FROM company_revenue AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id internet
|
||||||
SELECT T3.company_name, T3.headquarter_address, T2.brand_name, T1.revenue FROM company_brand_revenue AS T1 JOIN brand AS T2 JOIN company AS T3 ON T1.brand_id = T2.brand_id AND T2.company_id = T3.company_id internet
|
|
||||||
SELECT T3.company_name, T3.annual_turnover, T2.brand_name, T1.revenue FROM company_brand_revenue AS T1 JOIN brand AS T2 JOIN company AS T3 ON T1.brand_id = T2.brand_id AND T2.company_id = T3.company_id internet
|
|
||||||
SELECT T3.company_name, T2.brand_name, T2.legal_representative, T1.revenue FROM company_brand_revenue AS T1 JOIN brand AS T2 JOIN company AS T3 ON T1.brand_id = T2.brand_id AND T2.company_id = T3.company_id internet
|
|
||||||
SELECT T3.company_name, T2.brand_name, T1.revenue FROM company_brand_revenue AS T1 JOIN brand AS T2 JOIN company AS T3 ON T1.brand_id = T2.brand_id AND T2.company_id = T3.company_id internet
|
|
||||||
SELECT T2.company_name, T2.headquarter_address, T1.legal_representative FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id WHERE T1.registered_capital >= 100000000 internet
|
SELECT T2.company_name, T2.headquarter_address, T1.legal_representative FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id WHERE T1.registered_capital >= 100000000 internet
|
||||||
SELECT T2.company_name, T2.headquarter_address, T1.legal_representative FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id WHERE T1.registered_capital < 100000000 internet
|
SELECT T2.company_name, T2.headquarter_address, T1.legal_representative FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id WHERE T1.registered_capital < 100000000 internet
|
||||||
SELECT T2.company_name, T2.headquarter_address, T1.legal_representative FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id WHERE T1.registered_capital > 100000000 internet
|
SELECT T2.company_name, T2.headquarter_address, T1.legal_representative FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id WHERE T1.registered_capital > 100000000 internet
|
||||||
@@ -98,3 +94,7 @@ SELECT T2.legal_representative, T2.brand_name, sum(T1.revenue) FROM company_bran
|
|||||||
SELECT T2.legal_representative, T2.brand_name, max(T1.revenue) FROM company_brand_revenue AS T1 JOIN brand AS T2 ON T1.brand_id = T2.brand_id GROUP BY T1.brand_id internet
|
SELECT T2.legal_representative, T2.brand_name, max(T1.revenue) FROM company_brand_revenue AS T1 JOIN brand AS T2 ON T1.brand_id = T2.brand_id GROUP BY T1.brand_id internet
|
||||||
SELECT T2.headquarter_address, T2.company_name, sum(T1.registered_capital) FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id GROUP BY T1.company_id internet
|
SELECT T2.headquarter_address, T2.company_name, sum(T1.registered_capital) FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id GROUP BY T1.company_id internet
|
||||||
SELECT T2.headquarter_address, T2.company_name, max(T1.registered_capital) FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id GROUP BY T1.company_id internet
|
SELECT T2.headquarter_address, T2.company_name, max(T1.registered_capital) FROM brand AS T1 JOIN company AS T2 ON T1.company_id = T2.company_id GROUP BY T1.company_id internet
|
||||||
|
select T2.headquarter_address , T2.company_name, min(T1.registered_capital) from brand as T1 join company as T2 on T1.company_id = T2.company_id group by T1.company_id internet
|
||||||
|
select T2.headquarter_address , T2.company_name, avg(T1.registered_capital) from brand as T1 join company as T2 on T1.company_id = T2.company_id group by T1.company_id internet
|
||||||
|
select T2.headquarter_address , T2.company_name from company_revenue as T1 join company as T2 on T1.company_id = T2.company_id group by T1.company_id having sum(T1.revenue_proportion) > 0.5 internet
|
||||||
|
select T2.headquarter_address , T2.company_name from company_revenue as T1 join company as T2 on T1.company_id = T2.company_id group by T1.company_id having count(*) > 5 internet
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
在各公司所有品牌收入排名中,给出每一个品牌,其所在公司以及收入占该公司的总收入比例
|
在各公司所有品牌收入排名中,给出每一个品牌,其所在公司以及收入占该公司的总收入比例
|
||||||
在各公司所有品牌收入排名中,给出每一个品牌和其法人,其所在公司以及收入占该公司的总收入比例
|
在各公司所有品牌收入排名中,给出每一个品牌和其法人,其所在公司以及收入占该公司的总收入比例
|
||||||
在各公司所有品牌收入排名中,给出每一个品牌,其所在公司以及收入占该公司的总收入比例,同时给出该公司总部所在地
|
在各公司所有品牌收入排名中,给出每一个品牌,其所在公司以及收入占该公司的总收入比例,同时给出该公司总部所在地
|
||||||
在公司各品牌收入排名的利润占比最多10%时,给出公司的名称品牌的名称并给出公司各品牌收入排名的营收占比
|
在公司各品牌收入排名的利润占比最多0.1时,给出公司的名称品牌的名称并给出公司各品牌收入排名的营收占比
|
||||||
在公司各品牌收入排名的利润占比小于10%时,给出公司的名称品牌的名称并给出公司各品牌收入排名的营收占比
|
在公司各品牌收入排名的利润占比小于0.1时,给出公司的名称品牌的名称并给出公司各品牌收入排名的营收占比
|
||||||
在公司各品牌收入排名的利润占比不止10%时,给出公司的名称品牌的名称并给出公司各品牌收入排名的营收占比
|
在公司各品牌收入排名的利润占比不止0.1时,给出公司的名称品牌的名称并给出公司各品牌收入排名的营收占比
|
||||||
注册资本不小于1亿的品牌中,哪个品牌的平均营收占比最大?并给出它的法定代表人
|
注册资本不小于1亿的品牌中,哪个品牌的平均营收占比最大?并给出它的法定代表人
|
||||||
注册资本大于1亿的品牌中,哪5个品牌收入最少?并给出它们的法定代表人
|
注册资本大于1亿的品牌中,哪5个品牌收入最少?并给出它们的法定代表人
|
||||||
找到注册资本少于一个亿的品牌及其法人,并给出对应公司的平均营收占比
|
找到注册资本少于一个亿的品牌及其法人,并给出对应公司的平均营收占比
|
||||||
@@ -12,17 +12,17 @@
|
|||||||
给出注册资本不超过一亿的的品牌及其法人,并给出对应的公司的总营收占比
|
给出注册资本不超过一亿的的品牌及其法人,并给出对应的公司的总营收占比
|
||||||
给出注册资本少于一亿的品牌及其法人,并给出对应的公司的最大营收占比
|
给出注册资本少于一亿的品牌及其法人,并给出对应的公司的最大营收占比
|
||||||
给出注册资本不超过1亿的品牌及其法人,并找出对应的公司的最大营收占比
|
给出注册资本不超过1亿的品牌及其法人,并找出对应的公司的最大营收占比
|
||||||
在注册资本超过一亿的公司中,给出公司各品牌收入品牌的平均营收占比正好50%的品牌及其法人
|
在注册资本超过一亿的公司中,给出公司各品牌收入品牌的平均营收占比正好0.5的品牌及其法人
|
||||||
在注册资本不超过一亿的公司中,给出个品牌收入排名五的品牌及其法人
|
在注册资本不超过一亿的公司中,给出个品牌收入排名五的品牌及其法人
|
||||||
在各品牌收入在公司排名中,当品牌的注册资本不大于1亿时,给出公司各品牌收入排名的支出占比的平均值小于等于45%的那些品牌的名称以及公司各品牌收入排名的营收占比的平均值
|
在各品牌收入在公司排名中,当品牌的注册资本不大于1亿时,给出公司各品牌收入排名的支出占比的平均值小于等于0.45的那些品牌的名称以及公司各品牌收入排名的营收占比的平均值
|
||||||
在各品牌收入在公司排名中,当品牌的注册资本小于1亿时,给出公司各品牌收入排名数量小于等于5的那些品牌的名称以及公司各品牌收入排名的营收占比的最小值
|
在各品牌收入在公司排名中,当品牌的注册资本小于1亿时,给出公司各品牌收入排名数量小于等于5的那些品牌的名称以及公司各品牌收入排名的营收占比的最小值
|
||||||
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的平均值
|
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的平均值
|
||||||
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的最小值
|
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的最小值
|
||||||
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的总和
|
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的总和
|
||||||
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的最大值
|
在各品牌收入在公司排名中,给出每个品牌的名称,品牌的法定代表人,以及公司各品牌收入排名的营收占比的最大值
|
||||||
在各品牌收入在公司排名中,给出收入排名不超过5的品牌及其法人
|
在各品牌收入在公司排名中,给出收入排名不超过5的品牌及其法人
|
||||||
在各品牌收入在公司排名中,给出在收入排名中的平均营收占比超过50%的品牌及其法人
|
在各品牌收入在公司排名中,给出在收入排名中的平均营收占比超过0.5的品牌及其法人
|
||||||
在各品牌收入在公司排名中,当公司各品牌收入排名的利润占比的平均值小于等于60%时,给出品牌的名称以及公司各品牌收入排名的营收占比的平均值
|
在各品牌收入在公司排名中,当公司各品牌收入排名的利润占比的平均值小于等于0.6时,给出品牌的名称以及公司各品牌收入排名的营收占比的平均值
|
||||||
在各品牌收入在公司排名中,当公司各品牌收入排名数量等于5时,给出品牌的名称以及公司各品牌收入排名的营收占比的最小值
|
在各品牌收入在公司排名中,当公司各品牌收入排名数量等于5时,给出品牌的名称以及公司各品牌收入排名的营收占比的最小值
|
||||||
哪个品牌收入的平均利润占比最大,给出品牌的法定代表人,以及其收入平均营收占比
|
哪个品牌收入的平均利润占比最大,给出品牌的法定代表人,以及其收入平均营收占比
|
||||||
哪3个品牌的收入最多,给出品牌的法定代表人,以及其收入总营收占比
|
哪3个品牌的收入最多,给出品牌的法定代表人,以及其收入总营收占比
|
||||||
@@ -38,10 +38,6 @@
|
|||||||
给出每一个品牌和其法人,所属的公司以及总部所在城市
|
给出每一个品牌和其法人,所属的公司以及总部所在城市
|
||||||
有自己品牌的公司有哪些?给出这些公司和总部所在地
|
有自己品牌的公司有哪些?给出这些公司和总部所在地
|
||||||
有自己品牌的公司有哪些?给出这些公司和年营业额
|
有自己品牌的公司有哪些?给出这些公司和年营业额
|
||||||
在各公司其品牌的历年收入中,给出每一个品牌,其所属的公司和公司总部所在地点,并给出该品牌近几年的营收
|
|
||||||
在各公司其品牌的历年收入中,给出每一个品牌,其所属的公司和公司年营业额,并给出该品牌近几年的营收
|
|
||||||
在各公司其品牌的历年收入中,给出每一个品牌,其所属的公司和公司法人,并给出该品牌近几年的营收
|
|
||||||
在各公司其品牌的历年收入中,给出每一个品牌,其所属的公司,以及该品牌近几年的营收
|
|
||||||
在品牌的注册资本至少1亿时,给出公司的名称以及公司的总部地点品牌的法定代表人
|
在品牌的注册资本至少1亿时,给出公司的名称以及公司的总部地点品牌的法定代表人
|
||||||
在品牌的注册资本少于1亿时,给出公司的名称以及公司的总部地点品牌的法定代表人
|
在品牌的注册资本少于1亿时,给出公司的名称以及公司的总部地点品牌的法定代表人
|
||||||
在品牌的注册资本超过1亿时,给出公司的名称以及公司的总部地点品牌的法定代表人
|
在品牌的注册资本超过1亿时,给出公司的名称以及公司的总部地点品牌的法定代表人
|
||||||
@@ -56,7 +52,7 @@
|
|||||||
给出注册资本不超过一亿,且年营业额少于288亿的公司,以及总部地点和法人
|
给出注册资本不超过一亿,且年营业额少于288亿的公司,以及总部地点和法人
|
||||||
找出注册资本少于一亿,且年营业额不超过288亿的公司,以及总部在哪,法人是谁
|
找出注册资本少于一亿,且年营业额不超过288亿的公司,以及总部在哪,法人是谁
|
||||||
在公司品牌历年收入的利润最多500亿时,给出公司的名称品牌的名称并给出公司品牌历年收入的营收
|
在公司品牌历年收入的利润最多500亿时,给出公司的名称品牌的名称并给出公司品牌历年收入的营收
|
||||||
在公司品牌历年收入的营收同比增长至少100%时,给出公司的名称品牌的名称并给出公司品牌历年收入的营收
|
在公司品牌历年收入的营收同比增长至少1时,给出公司的名称品牌的名称并给出公司品牌历年收入的营收
|
||||||
年营业额不小于288亿的公司中,哪5个公司的平均营收占比最少?,并给出它们的总部地点
|
年营业额不小于288亿的公司中,哪5个公司的平均营收占比最少?,并给出它们的总部地点
|
||||||
年营业额不小于288亿的公司中,哪个公司的平均营收占比最大?并给出它的总部地点
|
年营业额不小于288亿的公司中,哪个公司的平均营收占比最大?并给出它的总部地点
|
||||||
注册资本大于1亿的品牌中,哪个品牌历年收入的平均营收最大?并给出它的法定代表人
|
注册资本大于1亿的品牌中,哪个品牌历年收入的平均营收最大?并给出它的法定代表人
|
||||||
@@ -78,12 +74,12 @@
|
|||||||
给出不超过288亿年营业额的公司及总部地点,并给出这些品牌中的平均注册资本
|
给出不超过288亿年营业额的公司及总部地点,并给出这些品牌中的平均注册资本
|
||||||
给出不超过288亿年营业额的公司及其总部地点,并给出这些品牌的的最大注册资本
|
给出不超过288亿年营业额的公司及其总部地点,并给出这些品牌的的最大注册资本
|
||||||
给出年营业额超过288亿的公司及其总部地点,并给出这些品牌的的总注册资本
|
给出年营业额超过288亿的公司及其总部地点,并给出这些品牌的的总注册资本
|
||||||
给出年营业额不超过288亿的各公司品牌中,给出收入排名中的营收占比加起来不超过50%的公司及其总部地点
|
给出年营业额不超过288亿的各公司品牌中,给出收入排名中的营收占比加起来不超过0.5的公司及其总部地点
|
||||||
给出年营业额低于288亿的各公司的各品牌中,给出收入排名中的总营收占比不超过50%的公司及总部地点中
|
给出年营业额低于288亿的各公司的各品牌中,给出收入排名中的总营收占比不超过0.5的公司及总部地点中
|
||||||
在年营业额不少于288亿的公司中,给出品牌不超过5个的公司及其总部地点
|
在年营业额不少于288亿的公司中,给出品牌不超过5个的公司及其总部地点
|
||||||
在年营业额不超过288亿的公司中,给出品牌少于5个的公司及其总部地点
|
在年营业额不超过288亿的公司中,给出品牌少于5个的公司及其总部地点
|
||||||
在各公司的各品牌收入排名中,当公司的年营业额大于288亿时,给出公司各品牌收入排名数量大于5的那些公司的名称以及公司各品牌收入排名的营收占比的最小值
|
在各公司的各品牌收入排名中,当公司的年营业额大于288亿时,给出公司各品牌收入排名数量大于5的那些公司的名称以及公司各品牌收入排名的营收占比的最小值
|
||||||
在各公司的各品牌收入排名中,当公司的年营业额小于288亿时,给出公司各品牌收入排名的利润占比的平均值大于75%的那些公司的名称以及公司各品牌收入排名的营收占比的最大值
|
在各公司的各品牌收入排名中,当公司的年营业额小于288亿时,给出公司各品牌收入排名的利润占比的平均值大于0.75的那些公司的名称以及公司各品牌收入排名的营收占比的最大值
|
||||||
在各品牌的历年收入中,当品牌的注册资本不大于1亿时,给出公司品牌历年收入的利润同比增长的总和小于等于1000000的那些品牌的名称以及公司品牌历年收入的营收的最大值
|
在各品牌的历年收入中,当品牌的注册资本不大于1亿时,给出公司品牌历年收入的利润同比增长的总和小于等于1000000的那些品牌的名称以及公司品牌历年收入的营收的最大值
|
||||||
在各品牌的历年收入中,当品牌的注册资本小于1亿时,给出公司品牌历年收入数量小于5的那些品牌的名称以及公司品牌历年收入的营收的最小值
|
在各品牌的历年收入中,当品牌的注册资本小于1亿时,给出公司品牌历年收入数量小于5的那些品牌的名称以及公司品牌历年收入的营收的最小值
|
||||||
在各品牌所属的公司中,当公司的年营业额大于288亿时,给出品牌数量小于5的那些公司的名称以及品牌的注册资本的总和
|
在各品牌所属的公司中,当公司的年营业额大于288亿时,给出品牌数量小于5的那些公司的名称以及品牌的注册资本的总和
|
||||||
@@ -98,3 +94,7 @@
|
|||||||
在各品牌的历年收入中,给出每个品牌的名称,品牌的法定代表人,以及公司品牌历年收入的营收的最大值
|
在各品牌的历年收入中,给出每个品牌的名称,品牌的法定代表人,以及公司品牌历年收入的营收的最大值
|
||||||
在各品牌所属的公司中,给出每个公司的名称,公司的总部地点,以及品牌的注册资本的总和
|
在各品牌所属的公司中,给出每个公司的名称,公司的总部地点,以及品牌的注册资本的总和
|
||||||
在各品牌所属的公司中,给出每个公司的名称,公司的总部地点,以及品牌的注册资本的最大值
|
在各品牌所属的公司中,给出每个公司的名称,公司的总部地点,以及品牌的注册资本的最大值
|
||||||
|
在各品牌所属的公司中,给出每个公司的名称,公司的总部地点,以及品牌的注册资本的最小值
|
||||||
|
在各品牌所属的公司中,给出每个公司的名称,公司的总部地点,以及品牌的注册资本的平均值
|
||||||
|
在各公司的各品牌收入排名种,哪些公司的品牌排名的总营收占比超过0.5,并给出总部的地点
|
||||||
|
在各公司的各品牌收入排名中,哪些公司的品牌收入排名超过5,并给出公司的总部地点
|
||||||
|
|||||||
@@ -522,14 +522,19 @@ def evaluate(gold, predict, db_dir, etype, kmaps,query_path):
|
|||||||
p_sql = p_str
|
p_sql = p_str
|
||||||
|
|
||||||
if etype in ["all", "exec"]:
|
if etype in ["all", "exec"]:
|
||||||
exec_score = eval_exec_match(db, p_str, g_str, p_sql, g_sql)
|
result = eval_exec_match(db, p_str, g_str, p_sql, g_sql)
|
||||||
if not exec_score:
|
#exec_score = eval_exec_match(db, p_str, g_str, p_sql, g_sql)
|
||||||
|
if not result["equal"]:
|
||||||
element={}
|
element={}
|
||||||
element["query"]=questions[index]
|
element["query"]=questions[index]
|
||||||
element["gold_sql"]=g_str
|
element["gold_sql"]=g_str
|
||||||
element["pred_sql"]=p_str
|
element["pred_sql"]=p_str
|
||||||
|
if "p_res_map" in result:
|
||||||
|
element["p_res_map"]=result["p_res_map"]
|
||||||
|
if "q_res_map" in result:
|
||||||
|
element["q_res_map"]=result["q_res_map"]
|
||||||
log_list.append(element)
|
log_list.append(element)
|
||||||
if exec_score:
|
if result["equal"]:
|
||||||
scores[hardness]['exec'] += 1.0
|
scores[hardness]['exec'] += 1.0
|
||||||
scores['all']['exec'] += 1.0
|
scores['all']['exec'] += 1.0
|
||||||
|
|
||||||
@@ -609,6 +614,7 @@ def eval_exec_match(db, p_str, g_str, pred, gold):
|
|||||||
return 1 if the values between prediction and gold are matching
|
return 1 if the values between prediction and gold are matching
|
||||||
in the corresponding index. Currently not support multiple col_unit(pairs).
|
in the corresponding index. Currently not support multiple col_unit(pairs).
|
||||||
"""
|
"""
|
||||||
|
result={}
|
||||||
conn = sqlite3.connect(db)
|
conn = sqlite3.connect(db)
|
||||||
cursor = conn.cursor()
|
cursor = conn.cursor()
|
||||||
try:
|
try:
|
||||||
@@ -618,8 +624,10 @@ def eval_exec_match(db, p_str, g_str, pred, gold):
|
|||||||
for index in range(0,len(p_fields)):
|
for index in range(0,len(p_fields)):
|
||||||
p_fields[index]=re.sub("t\d+.", "",p_fields[index].replace("`","").lower())
|
p_fields[index]=re.sub("t\d+.", "",p_fields[index].replace("`","").lower())
|
||||||
p_res = cursor.fetchall()
|
p_res = cursor.fetchall()
|
||||||
except:
|
except Exception as e:
|
||||||
return False
|
logging.info(e)
|
||||||
|
result["equal"]=False
|
||||||
|
return result
|
||||||
|
|
||||||
cursor.execute(g_str)
|
cursor.execute(g_str)
|
||||||
q_res = cursor.fetchall()
|
q_res = cursor.fetchall()
|
||||||
@@ -635,9 +643,15 @@ def eval_exec_match(db, p_str, g_str, pred, gold):
|
|||||||
|
|
||||||
g_fields = parse_sql(g_str)
|
g_fields = parse_sql(g_str)
|
||||||
|
|
||||||
#print("p_res_map:{}".format(res_map(p_res, p_fields)))
|
p_res_map=res_map(p_res, p_fields)
|
||||||
#print("q_res_map:{}".format(res_map(q_res, g_fields)))
|
q_res_map=res_map(q_res, g_fields)
|
||||||
return res_map(p_res, p_fields) == res_map(q_res, g_fields)
|
# print("p_res_map:{}".format(p_res_map))
|
||||||
|
# print("q_res_map:{}".format(q_res_map))
|
||||||
|
result["equal"]=(p_res_map==q_res_map)
|
||||||
|
result["p_res_map"]=json.dumps(p_res_map, ensure_ascii=False)
|
||||||
|
result["q_res_map"]=json.dumps(q_res_map, ensure_ascii=False)
|
||||||
|
return result
|
||||||
|
#return res_map(p_res, p_fields) == res_map(q_res, g_fields)
|
||||||
|
|
||||||
def parse_sql(sql):
|
def parse_sql(sql):
|
||||||
# 使用 sqlparse 库解析 SQL 查询语句
|
# 使用 sqlparse 库解析 SQL 查询语句
|
||||||
|
|||||||
@@ -34,6 +34,11 @@ authentication:
|
|||||||
time:
|
time:
|
||||||
threshold: 100
|
threshold: 100
|
||||||
|
|
||||||
|
dimension:
|
||||||
|
topn: 20
|
||||||
|
metric:
|
||||||
|
topn: 20
|
||||||
|
|
||||||
mybatis:
|
mybatis:
|
||||||
mapper-locations=classpath:mappers/custom/*.xml,classpath*:/mappers/*.xml
|
mapper-locations=classpath:mappers/custom/*.xml,classpath*:/mappers/*.xml
|
||||||
|
|
||||||
|
|||||||
@@ -1118,22 +1118,22 @@ insert into company(imp_date,company_id,company_name,headquarter_address,company
|
|||||||
insert into company(imp_date,company_id,company_name,headquarter_address,company_established_time,founder,ceo,annual_turnover,employee_count) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_134','北京京东世纪贸易有限公司','北京','1998','刘强东','刘强东',28800000000,179000);
|
insert into company(imp_date,company_id,company_name,headquarter_address,company_established_time,founder,ceo,annual_turnover,employee_count) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_134','北京京东世纪贸易有限公司','北京','1998','刘强东','刘强东',28800000000,179000);
|
||||||
insert into company(imp_date,company_id,company_name,headquarter_address,company_established_time,founder,ceo,annual_turnover,employee_count) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_135','网易公司','杭州','1997','丁磊','丁磊',67500000000,20000);
|
insert into company(imp_date,company_id,company_name,headquarter_address,company_established_time,founder,ceo,annual_turnover,employee_count) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_135','网易公司','杭州','1997','丁磊','丁磊',67500000000,20000);
|
||||||
|
|
||||||
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_136','阿里云','2009年9月10日','item_enterprise_13_134','张勇',50000000);
|
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_136','阿里云','2009年9月10日','item_enterprise_13_132','张勇',50000000);
|
||||||
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_137','天猫','2012年1月11日','item_enterprise_13_134','张勇',100000000);
|
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_137','天猫','2012年1月11日','item_enterprise_13_132','张勇',100000000);
|
||||||
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_138','腾讯游戏','2003','item_enterprise_13_131','马化腾',50000000);
|
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_138','腾讯游戏','2003','item_enterprise_13_133','马化腾',50000000);
|
||||||
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_139','度小满','2018','item_enterprise_13_132','朱光',100000000);
|
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_139','度小满','2018','item_enterprise_13_131','朱光',100000000);
|
||||||
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_140','京东金融','2017','item_enterprise_13_134','刘强东',100000000);
|
insert into brand(imp_date,brand_id,brand_name,brand_established_time,company_id,legal_representative,registered_capital) VALUES (DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_140','京东金融','2017','item_enterprise_13_134','刘强东',100000000);
|
||||||
|
|
||||||
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_131','item_enterprise_13_139',10,10,30);
|
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_131','item_enterprise_13_139',10,10,30);
|
||||||
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_134','item_enterprise_13_138',80,80,60);
|
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_133','item_enterprise_13_138',80,80,60);
|
||||||
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_135','item_enterprise_13_139',80,80,60);
|
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_134','item_enterprise_13_140',80,80,60);
|
||||||
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_131','item_enterprise_13_137',80,80,60);
|
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_132','item_enterprise_13_137',80,80,60);
|
||||||
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_135','item_enterprise_13_137',10,10,30);
|
insert into company_revenue(imp_date,company_id,brand_id,revenue_proportion,profit_proportion,expenditure_proportion) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'item_enterprise_13_132','item_enterprise_13_136',10,10,30);
|
||||||
|
|
||||||
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '2018','item_enterprise_13_138',500000000,-300000000,10,-10);
|
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '2018','item_enterprise_13_138',500000000,-300000000,10,-10);
|
||||||
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '2019','item_enterprise_13_136',100000000000,50000000000,100,50);
|
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '2019','item_enterprise_13_136',100000000000,50000000000,100,50);
|
||||||
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'2018','item_enterprise_13_137',100000000000,50000000000,100,-10);
|
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'2018','item_enterprise_13_137',100000000000,50000000000,100,-10);
|
||||||
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '2018','item_enterprise_13_139',500000000,50000000000,10,50);
|
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES (DATEADD('DAY', -1, CURRENT_DATE()), '2018','item_enterprise_13_139',500000000,50000000000,10,50);
|
||||||
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'2018','item_enterprise_13_138',100000000000,-300000000,10,50);
|
insert into company_brand_revenue(imp_date,year_time,brand_id,revenue,profit,revenue_growth_year_on_year,profit_growth_year_on_year) VALUES ( DATEADD('DAY', -1, CURRENT_DATE()),'2018','item_enterprise_13_140',100000000000,-300000000,10,50);
|
||||||
|
|
||||||
-- benchmark
|
-- benchmark
|
||||||
|
|||||||
Reference in New Issue
Block a user