为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
DM Database Server 64 V8
8.1
企业版
DB Version: 0x7000c
03134283890-20220304-158322-10045
【操作系统】:
PRETTY_NAME="UnionTech OS Server 20 Enterprise"
NAME="UnionTech OS Server 20 Enterprise"
VERSION_ID="20"
VERSION="20"
ID=UOS
【CPU】:
【问题描述】*:
sql执行报错:The select item is not the item of group by;
sql如下
select t1.id,
t1.network_name networkName,
t1.network_type networkType,
t1.network_encrypt networkEncrypt,
COALESCE(t2.device_num,0) deviceNum,
(select count(nd.device_id)
from t_network_device nd
left join t_device d on nd.device_id = d.id
where d.status = 1) onlineDeviceNum,
(select count(nd.device_id)
from t_network_device nd
left join t_device d on nd.device_id = d.id
where d.status = 0) offlineDeviceNum,
t3.alarmNum
from t_network t1
left join (
select network_id,
count(device_id) device_num
from t_network_device
group by network_id
) t2 on t1.id = t2.network_id
left join (
select tnd.network_id,
sum(tad.num) alarmNum
from t_network_device tnd
left join (
select td.id,
count(ta.id) num
from t_alarm ta
left join t_device td on ta.device_sn_no = td.sn_no
group by ta.device_sn_no) tad on tnd.device_id = tad.id
) t3 on t1.id = t3.network_id
where t1.network_name like concat('%',#{networkName},'%')
order by t1.create_time
DDL
CREATE TABLE T_NETWORK_DEVICE (
ID VARCHAR(100) NOT NULL,
NETWORK_ID VARCHAR(100),
DEVICE_ID VARCHAR(100),
CONSTRAINT CONS134220442 PRIMARY KEY (ID)
);
CREATE UNIQUE INDEX INDEX33558948 ON QSGNMP.T_NETWORK_DEVICE (ID);
CREATE TABLE T_DEVICE (
ID VARCHAR(64) NOT NULL,
NAME VARCHAR(100),
SN_NO VARCHAR(100),
CONTROLLER_ID VARCHAR(100),
ORG_CODE VARCHAR(100),
IP VARCHAR(20),
PORT INT,
MAC VARCHAR(48),
STATUS INT,
BRAND VARCHAR(10),
"TYPE" VARCHAR(50),
MODEL VARCHAR(50),
SOFTWARE_VERSION VARCHAR(10),
HARDWARE_VERSION VARCHAR(20),
FIRST_ONLINE_TIME TIMESTAMP,
LAST_OFFLINE_TIME TIMESTAMP,
TOTAL_ONLINE_TIME CLOB,
OWNER VARCHAR(64),
CITY VARCHAR(10),
AREA VARCHAR(100),
POINT_X NUMBER(10,6),
POINT_Y NUMBER(10,6),
CREATE_BY VARCHAR(64),
CREATE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),
UPDATE_BY VARCHAR(64),
UPDATE_TIME TIMESTAMP,
CONSTRAINT CONS134220427 PRIMARY KEY (ID)
);
CREATE UNIQUE INDEX INDEX33558933 ON QSGNMP.T_DEVICE (ID);
CREATE TABLE T_ALARM (
ID VARCHAR(64) NOT NULL,
DEVICE_SN_NO VARCHAR(100),
DEVICE_ALARM_ID INT,
APPLICATIONS VARCHAR(100),
LOG_LEVEL VARCHAR(20),
LOG_TYPE VARCHAR(100),
APP_MODULE VARCHAR(100),
OPERATOR VARCHAR(64),
ERROR_CODE VARCHAR(20),
LOG_CONTENT TEXT,
ALARM_TIME TIMESTAMP,
STATUS INT,
UPDATE_BY VARCHAR(20),
UPDATE_TIME TIMESTAMP,
CONSTRAINT CONS134220506 PRIMARY KEY (ID)
);
CREATE UNIQUE INDEX INDEX33559012 ON QSGNMP.T_ALARM (ID);
默认情况下不支持查询项不是 GROUP BY 表达式,可以将dm.ini GROUP_OPT_FLAG的参数加1来支持或者将 COMPATIBLE_MODE改为4(mysql兼容模式)