---------------------患者列表视图-----------------

CREATE MATERIALIZED VIEW `patient_split_manage_list_mv_v3`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`patientInfoId`) BUCKETS 4
REFRESH ASYNC EVERY(INTERVAL 1 MINUTE)
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "HDD"
)
AS SELECT `ppati`.`id` AS `patientInfoId`, any_value(`ppati`.`archives_create_time`) AS `ppati_createTime`, any_value(`ppati`.`patient_name`) AS `patientName`, any_value(`ppati`.`patient_head_portrait`) AS `patientHeadPortrait`, any_value(`ppati`.`patient_phone`) AS `patientPhone`, any_value(`ppati`.`patient_member_no`) AS `patientMemberNo`, any_value(`ppati`.`patient_sex`) AS `patientSex`, any_value(`ppati`.`patient_id_card`) AS `patientIdCard`, any_value(`ppati`.`patient_birthday`) AS `patientBirthday`, any_value(`ppati`.`detail_address`) AS `detailAddress`, any_value(`pai`.`login_name`) AS `archivesCreatePerson`, any_value(`pai`.`empl_no`) AS `empNo`, any_value(`ppati`.`archives_create_person`) AS `createPerson`, any_value(`ppss`.`id`) AS `storeId`, any_value(`ppss`.`store_name`) AS `storeName`, any_value(`ppss`.`store_code`) AS `storeCode`, any_value(`ppati`.`patient_indication`) AS `patientIndication`, CASE WHEN (((any_value(`ppati`.`is_dtp`)) = 0) AND ((any_value(`ppati`.`is_common`)) = 1)) THEN '普药患者' WHEN (((any_value(`ppati`.`is_dtp`)) = 1) AND ((any_value(`ppati`.`is_common`)) = 0)) THEN 'DTP患者' WHEN (((any_value(`ppati`.`is_dtp`)) = 1) AND ((any_value(`ppati`.`is_common`)) = 1)) THEN 'DTP患者;普药患者' ELSE '' END AS `patientType`, any_value(`ppati`.`patient_card_type`) AS `patientCardType`, any_value(`ppati`.`member_level`) AS `memberLevel`, any_value(`ppati`.`member_value`) AS `memberValue`, any_value(`ppati`.`medical_type`) AS `medicalType`, any_value(`ppati`.`patient_medicine`) AS `patientMedicine`, any_value(`ppati`.`patient_medicine_currency`) AS `patientMedicineCurrency`, any_value(`ppati`.`patient_medicine_tumour`) AS `patientMedicineTumour`, any_value(`ppati`.`source_channel_name`) AS `patientSourceChanelName`, any_value(`ppati`.`is_dtp`) AS `isDtp`, any_value(`ppati`.`is_common`) AS `isCommon`, min(`ppsr`.`store_id`) AS `storeIdFilter`, any_value(`ppsr`.`pharmaceutical_company_id`) AS `pharmaceuticalCompanyId`, array_join(reverse(array_distinct(array_agg(`ppsr`.`store_id`))), ',') AS `storeIdList`, any_value(`pphrec`.`archives_create_person`) AS `archivesCreatePerson1`, any_value(`pphrec`.`archives_create_time`) AS `archivesCreateTime`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_code`))), ',') AS `icdCode`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_name`))), ',') AS `icdName`, array_join(reverse(array_distinct(array_agg(`pps`.`store_name`))), ',') AS `storeList1`, array_join(reverse(array_distinct(array_agg(`pps`.`store_code`))), ',') AS `storeListCodes`, any_value(`t1`.`store_id`) AS `archivesCreateStore`, any_value(`ppati`.`patient_currency_update_time`) AS `archivesCurrencyUpdateTime`, any_value(`ppati`.`patient_currency_create_person`) AS `archivesCurrencyUpdatePerson`, any_value(`ppati`.`patient_tumour_update_time`) AS `archivesTumorUpdateTime`, any_value(`ppati`.`patient_tumour_create_person`) AS `archivesTumorUpdatePerson`, array_max(array_concat(array_append([], any_value(`ppati`.`patient_currency_update_time`)), array_append([], any_value(`ppati`.`patient_tumour_update_time`)))) AS `archivesAllUpdateTime`, split_part(array_join(reverse(array_sortby(array_concat(array_append([], any_value(`ppati`.`patient_currency_create_person`)), array_append([], any_value(`ppati`.`patient_tumour_create_person`))), array_concat(array_append([], any_value(`ppati`.`patient_currency_update_time`)), array_append([], any_value(`ppati`.`patient_tumour_update_time`))))), '-'), '-', 1) AS `archivesAllUpdatePerson`
FROM `ps_patient_split_info` AS `ppati` INNER JOIN `ps_patient_store_reg` AS `ppsr` ON ((`ppsr`.`patient_id` = `ppati`.`id`) AND (`ppsr`.`STATUS` = 1)) AND (`ppsr`.`patient_type` = 1) LEFT OUTER JOIN `ps_patient_store` AS `pps` ON `pps`.`id` = `ppsr`.`store_id` LEFT OUTER JOIN `ps_account_info` AS `pai` ON `pai`.`id` = `ppati`.`archives_create_person` LEFT OUTER JOIN `ps_patient_store_reg` AS `ppsrr` ON (`ppsrr`.`patient_id` = `ppati`.`id`) AND (`ppsrr`.`is_create_store` = 1) LEFT OUTER JOIN `ps_patient_store` AS `ppss` ON (`ppss`.`id` = `ppsrr`.`store_id`) AND (`ppss`.`STATUS` = 1) LEFT OUTER JOIN `ps_patient_icd_reg` AS `ppir` ON ((`ppati`.`id` = `ppir`.`patient_id`) AND (`ppir`.`STATUS` = 1)) AND (`ppir`.`patient_type` = 1) LEFT OUTER JOIN `ps_icd_item` AS `pii` ON (`ppir`.`icd_id` = `pii`.`icd_code`) AND (`pii`.`STATUS` = 1) LEFT OUTER JOIN `ps_patient_health_records` AS `pphrec` ON (`ppati`.`id` = `pphrec`.`patient_id`) AND (`pphrec`.`STATUS` = 1) LEFT OUTER JOIN `ps_account_info` AS `t1` ON (`pphrec`.`archives_create_person` = `t1`.`login_name`) AND (`t1`.`STATUS` = 1)
WHERE `ppati`.`STATUS` = 1
GROUP BY `ppati`.`id`;

-----------------------小程序会员列表视图---------------------

CREATE MATERIALIZED VIEW `patient_applet_list_mv`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`patientInfoId`) BUCKETS 4
REFRESH ASYNC EVERY(INTERVAL 1 MINUTE)
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "HDD"
)
AS SELECT any_value(`ppati`.`id`) AS `patientInfoId`, any_value(`ppati`.`create_time`) AS `ppati_createTime`, any_value(`ppati`.`patient_name`) AS `patientName`, any_value(`ppati`.`patient_phone`) AS `patientPhone`, any_value(`ppati`.`patient_sex`) AS `patientSex`, any_value(`ppati`.`patient_id_card`) AS `patientIdCard`, any_value(`ppati`.`patient_member_no`) AS `patientMemberNo`, any_value(`ppati`.`patient_card_type`) AS `patientCardType`, any_value(`ppati`.`is_patient`) AS `isPatient`, any_value(`ppati`.`is_member`) AS `isMember`, any_value(`ppati`.`archives_create_time`) AS `createTime`, any_value(`ppati`.`archives_create_person`) AS `archivesCreatePerson1`, any_value(`pai`.`login_name`) AS `archivesCreatePerson2`, any_value(`pps`.`store_name`) AS `storeName`, any_value(`ppati`.`patient_birthday`) AS `patientBirthday`, any_value(`ppsr`.`store_id`) AS `storeId`, any_value(`ppsr`.`pharmaceutical_company_id`) AS `pharmaceuticalCompanyId`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_code`))), ',') AS `icdCode`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_name`))), ',') AS `icdName`
FROM `ps_patient_info` AS `ppati` INNER JOIN `ps_patient_store_reg` AS `ppsr` ON ((`ppati`.`id` = `ppsr`.`patient_id`) AND (`ppsr`.`status` = 1)) AND (`ppsr`.`patient_type` = 2) LEFT OUTER JOIN `ps_patient_icd_reg` AS `ppir` ON ((`ppati`.`id` = `ppir`.`patient_id`) AND (`ppir`.`status` = 1)) AND (`ppir`.`patient_type` = 2) LEFT OUTER JOIN `ps_icd_item` AS `pii` ON (`ppir`.`icd_id` = `pii`.`icd_code`) AND (`pii`.`status` = 1) LEFT OUTER JOIN `ps_account_info` AS `pai` ON `ppati`.`archives_create_person` = `pai`.`id` LEFT OUTER JOIN `ps_patient_store` AS `pps` ON `pps`.`id` = `ppsr`.`store_id`
WHERE `ppati`.`status` = 1
GROUP BY `ppati`.`id`;


------------------管理端会员列表视图------------------------------
CREATE MATERIALIZED VIEW `patient_manage_list_mv_v2`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`patientInfoId`) BUCKETS 4
REFRESH ASYNC EVERY(INTERVAL 1 MINUTE)
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "HDD"
)
AS SELECT `ppati`.`id` AS `patientInfoId`, any_value(`ppati`.`archives_create_time`) AS `ppati_createTime`, any_value(`ppati`.`patient_name`) AS `patientName`, any_value(`ppati`.`patient_head_portrait`) AS `patientHeadPortrait`, any_value(`ppati`.`patient_phone`) AS `patientPhone`, any_value(`ppati`.`patient_member_no`) AS `patientMemberNo`, any_value(`ppati`.`patient_sex`) AS `patientSex`, any_value(`ppati`.`patient_id_card`) AS `patientIdCard`, any_value(`ppati`.`patient_birthday`) AS `patientBirthday`, any_value(`ppati`.`detail_address`) AS `detailAddress`, any_value(`pai`.`login_name`) AS `archivesCreatePerson`, any_value(`pai`.`empl_no`) AS `empNo`, any_value(`ppati`.`archives_create_person`) AS `createPerson`, any_value(`ppss`.`id`) AS `storeId`, any_value(`ppss`.`store_name`) AS `storeName`, any_value(`ppss`.`store_code`) AS `storeCode`, any_value(`ppati`.`patient_card_type`) AS `patientCardType`, any_value(`ppati`.`is_patient`) AS `isPatient`, any_value(`ppati`.`is_member`) AS `isMember`, any_value(`ppati`.`patient_type`) AS `patientType`, any_value(`ppati`.`member_level`) AS `memberLevel`, any_value(`ppati`.`member_value`) AS `memberValue`, any_value(`ppati`.`medical_type`) AS `medicalType`, any_value(`ppati`.`patient_medicine`) AS `patientMedicine`, any_value(`ppati`.`patient_medicine_currency`) AS `patientMedicineCurrency`, any_value(`ppati`.`patient_medicine_tumour`) AS `patientMedicineTumour`, any_value(`ppati`.`source_channel_name`) AS `patientSourceChanelName`, min(`ppsr`.`store_id`) AS `storeIdFilter`, any_value(`ppsr`.`pharmaceutical_company_id`) AS `pharmaceuticalCompanyId`, array_join(reverse(array_distinct(array_agg(`ppsr`.`store_id`))), ',') AS `storeIdList`, any_value(`pphrec`.`archives_create_person`) AS `archivesCreatePerson1`, any_value(`pphrec`.`archives_create_time`) AS `archivesCreateTime`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_code`))), ',') AS `icdCode`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_name`))), ',') AS `icdName`, array_join(reverse(array_distinct(array_agg(`pps`.`store_name`))), ',') AS `storeList1`, array_join(reverse(array_distinct(array_agg(`pps`.`store_code`))), ',') AS `storeListCodes`, any_value(`t1`.`store_id`) AS `archivesCreateStore`, any_value(`ppati`.`patient_currency_update_time`) AS `archivesCurrencyUpdateTime`, any_value(`ppati`.`patient_currency_create_person`) AS `archivesCurrencyUpdatePerson`, any_value(`ppati`.`patient_tumour_update_time`) AS `archivesTumorUpdateTime`, any_value(`ppati`.`patient_tumour_create_person`) AS `archivesTumorUpdatePerson`, array_max(array_concat(array_append([], any_value(`ppati`.`patient_currency_update_time`)), array_append([], any_value(`ppati`.`patient_tumour_update_time`)))) AS `archivesAllUpdateTime`, split_part(array_join(reverse(array_sortby(array_concat(array_append([], any_value(`ppati`.`patient_currency_create_person`)), array_append([], any_value(`ppati`.`patient_tumour_create_person`))), array_concat(array_append([], any_value(`ppati`.`patient_currency_update_time`)), array_append([], any_value(`ppati`.`patient_tumour_update_time`))))), '-'), '-', 1) AS `archivesAllUpdatePerson`
FROM `ps_patient_info` AS `ppati` INNER JOIN `ps_patient_store_reg` AS `ppsr` ON ((`ppsr`.`patient_id` = `ppati`.`id`) AND (`ppsr`.`STATUS` = 1)) AND (`ppsr`.`patient_type` = 2) LEFT OUTER JOIN `ps_patient_store` AS `pps` ON `pps`.`id` = `ppsr`.`store_id` LEFT OUTER JOIN `ps_account_info` AS `pai` ON `pai`.`id` = `ppati`.`archives_create_person` LEFT OUTER JOIN `ps_patient_store_reg` AS `ppsrr` ON ((`ppsrr`.`patient_id` = `ppati`.`id`) AND (`ppsrr`.`is_create_store` = 1)) AND (`ppsrr`.`patient_type` = 2) LEFT OUTER JOIN `ps_patient_store` AS `ppss` ON (`ppss`.`id` = `ppsrr`.`store_id`) AND (`ppss`.`STATUS` = 1) LEFT OUTER JOIN `ps_patient_icd_reg` AS `ppir` ON ((`ppati`.`id` = `ppir`.`patient_id`) AND (`ppir`.`STATUS` = 1)) AND (`ppir`.`patient_type` = 2) LEFT OUTER JOIN `ps_icd_item` AS `pii` ON (`ppir`.`icd_id` = `pii`.`icd_code`) AND (`pii`.`STATUS` = 1) LEFT OUTER JOIN `ps_patient_health_records` AS `pphrec` ON ((`ppati`.`id` = `pphrec`.`patient_id`) AND (`pphrec`.`STATUS` = 1)) AND (`pphrec`.`patient_type` = 2) LEFT OUTER JOIN `ps_account_info` AS `t1` ON (`pphrec`.`archives_create_person` = `t1`.`login_name`) AND (`t1`.`STATUS` = 1)
WHERE `ppati`.`STATUS` = 1
GROUP BY `ppati`.`id`;


----------------------小程序处方列表视图-----------------------------
CREATE MATERIALIZED VIEW `prescription_applet_list_mv`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`pdpre_id`) BUCKETS 4
REFRESH ASYNC EVERY(INTERVAL 3 MINUTE)
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "HDD"
)
AS SELECT `pdpre`.`id` AS `pdpre_id`, any_value(`pdpre`.`prescription_input_time`) AS `pdpre_prescriptionInputTime`, any_value(`pdpre`.`prescription_data`) AS `pdpre_prescriptionData`, any_value(`pdpre`.`pres_hospital_name`) AS `pdpre_presHospitalName`, any_value(`pdpre`.`pres_dept_name`) AS `pdpre_presDeptName`, any_value(`pdpre`.`pres_doctor_name`) AS `pdpre_presDoctorName`, array_join(reverse(array_distinct(array_agg(`pdpd`.`drug_name`))), ',') AS `drugNames`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_name`))), ',') AS `diagnosis`, any_value(`ppstore`.`store_name`) AS `storeName`, any_value(`pdpre`.`patient_id`) AS `patientId`, any_value(`pdpre`.`patient_name`) AS `patientName`, any_value(`pdpre`.`create_time`) AS `createTime`
FROM `ps_drug_prescription` AS `pdpre` LEFT OUTER JOIN `ps_drug_prescription_detail` AS `pdpd` ON (`pdpre`.`id` = `pdpd`.`main_id`) AND (`pdpd`.`status` = 1) LEFT OUTER JOIN `ps_drug_prescription_icd_reg` AS `pdpir` ON (`pdpre`.`id` = `pdpir`.`prescription_id`) AND (`pdpir`.`status` = 1) LEFT OUTER JOIN `ps_icd_item` AS `pii` ON `pii`.`icd_code` = `pdpir`.`icd_id` LEFT OUTER JOIN `ps_patient_store` AS `ppstore` ON `pdpre`.`store_id` = `ppstore`.`id`
WHERE `pdpre`.`status` = 1
GROUP BY `pdpre`.`id`;


------------------------------管理端处方列表视图---------------------------

CREATE MATERIALIZED VIEW `prescription_manage_list_mv`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`drugPrescriptionId`) BUCKETS 4
REFRESH ASYNC EVERY(INTERVAL 3 MINUTE)
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "HDD"
)
AS SELECT `pdpre`.`id` AS `drugPrescriptionId`, any_value(`pdpre`.`create_time`) AS `createTime`, any_value(`pdpre`.`main_status`) AS `mainStatus`, any_value(`pdpre`.`create_account_person`) AS `createAccountPerson`, any_value(`pdpre`.`create_person`) AS `createPerson`, any_value(`pdpre`.`sales_order`) AS `salesOrder`, any_value(`pdpre`.`patient_id`) AS `patientId`, any_value(`pdpre`.`patient_name`) AS `patientName`, any_value(`pdpre`.`three_main_no`) AS `threeMainNo`, any_value(`pdpre`.`patient_phone`) AS `patientPhone`, any_value(`pdpre`.`patient_no`) AS `patientNo`, any_value(`pdpre`.`patient_sex`) AS `patientSexString`, any_value(`pdpre`.`patient_age`) AS `patientAge`, any_value(`pdpre`.`patient_id_card`) AS `patientIdCard`, any_value(`pdpre`.`pres_hospital_name`) AS `presHospitalName`, any_value(`pdpre`.`pres_dept_name`) AS `presDeptName`, any_value(`pdpre`.`pres_doctor_name`) AS `presDoctorName`, any_value(`pdpre`.`store_id`) AS `storeId`, any_value(`pdpre`.`diagnosis`) AS `diagnosis`, any_value(`pdpre`.`pres_channel_id`) AS `presChannelId`, any_value(`pdpre`.`prescription_input_time`) AS `prescriptionInputTimeString`, array_join(array_sortby(array_agg(`r`.`remark_type_str`), array_agg(`r`.`create_time_str`)), '@@@') AS `remarkType`, array_join(array_sortby(array_agg(`r`.`remark_user`), array_agg(`r`.`create_time_str`)), '@@@') AS `remarkUser`, array_join(array_sortby(array_agg(`r`.`create_time_str`), array_agg(`r`.`create_time_str`)), '@@@') AS `inputTime`, array_join(reverse(array_distinct(array_agg(`pdpd`.`drug_id`))), ',') AS `drugIds`, array_join(reverse(array_distinct(array_agg(`pdpd`.`drug_spec`))), ',') AS `drugSpec`, array_join(reverse(array_distinct(array_agg(`pdpd`.`manufacturer`))), ',') AS `manufacturer`, array_join(reverse(array_distinct(array_agg(CAST((CAST(`pdpd`.`unit_price` AS DECIMAL128(32,2))) AS VARCHAR(65533))))), ',') AS `unitPrice`, array_join(reverse(array_distinct(array_agg(CAST((CAST(`pdpd`.`amount` AS DECIMAL128(32,2))) AS VARCHAR(65533))))), ',') AS `amount`, array_join(reverse(array_distinct(array_agg(concat('每次', ifnull(CAST(`pdpd`.`single_dose` AS VARCHAR(65533)), ''), ifnull(`pdpd`.`measure_unit_name`, ''), ',', ifnull(`pdpd`.`usage_desc`, ''), ',', ifnull(`pdpd`.`frequency_desc`, ''), ',', CAST(`pdpd`.`duration` AS VARCHAR(65533)), '天')))), ',') AS `singleDose`, array_join(reverse(array_distinct(array_agg(`pdpd`.`duration`))), ',') AS `duration`, array_join(reverse(array_distinct(array_agg(`pdpd`.`drug_name`))), '@@@') AS `drugNames`, array_join(reverse(array_distinct(array_agg(`pii`.`icd_name`))), '@@@') AS `icdNames`, any_value(`ppstore`.`store_name`) AS `storeName`, any_value(`pdpre`.`has_medical_insurance`) AS `hasMedicalInsurance`
FROM `ps_drug_prescription` AS `pdpre` LEFT OUTER JOIN `ps_drug_prescription_detail` AS `pdpd` ON (`pdpre`.`id` = `pdpd`.`main_id`) AND (`pdpd`.`status` = 1) LEFT OUTER JOIN `ps_patient_store` AS `ppstore` ON `pdpre`.`store_id` = `ppstore`.`id` LEFT OUTER JOIN `ps_drug_prescription_remark` AS `r` ON `pdpre`.`id` = `r`.`main_id` LEFT OUTER JOIN `ps_drug_prescription_icd_reg` AS `pdpir` ON (`pdpre`.`id` = `pdpir`.`prescription_id`) AND (`pdpir`.`status` = 1) LEFT OUTER JOIN `ps_icd_item` AS `pii` ON `pii`.`icd_code` = `pdpir`.`icd_id`
WHERE ((1 = 1) AND (`pdpre`.`status` = 1))
GROUP BY `pdpre`.`id`;

-----------------------------------------------------------

CREATE MATERIALIZED VIEW `saleAssay_amount_mv`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`patientInfoId`) BUCKETS 4
REFRESH ASYNC EVERY(INTERVAL 30 MINUTE)
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "HDD"
)
AS SELECT any_value(`ppi`.`id`) AS `patientInfoId`, any_value(`ppi`.`patient_birthday`) AS `patientBirthday`, any_value(`ppi`.`patient_id_card`) AS `idCard`, any_value(CASE WHEN (`ppi`.`patient_sex` = 1) THEN '男' WHEN (`ppi`.`patient_sex` = 2) THEN '女' ELSE '' END) AS `patientSex`, any_value(`ppi`.`patient_name`) AS `patientName`, any_value(`ppi`.`patient_phone`) AS `mobile`, any_value(`ppi`.`patient_member_no`) AS `patientNo`, any_value(`t3`.`icdNames`) AS `icd`, any_value(`pps`.`store_name`) AS `openStoreName`, any_value(`pps`.`store_code`) AS `openStoreCode`, any_value(`pai`.`login_name`) AS `accountName`, any_value(`pai`.`empl_no`) AS `accountNo`, CAST((sum(`t1`.`order_amount`)) AS DECIMAL128(32,2)) AS `orderTotalAmount`, count(`t1`.`order_seq`) AS `orderTotalNums`, array_join(array_sortby(array_agg(`t1`.`order_seq`), array_agg(`t1`.`create_time`)), '@') AS `orderNo`, array_join(array_sortby(array_agg(`t1`.`store_name`), array_agg(`t1`.`create_time`)), '@') AS `saleStoreName`, array_join(array_sortby(array_agg(`t1`.`store_code`), array_agg(`t1`.`create_time`)), '@') AS `saleStoreNo`, array_join(array_sortby(array_agg(`t1`.`orderBuyTime`), array_agg(`t1`.`create_time`)), '@') AS `orderBuyTime`, array_join(array_sortby(array_agg(CAST(`t1`.`order_amount` AS VARCHAR(65533))), array_agg(`t1`.`create_time`)), '@') AS `orderAmount`, array_join(array_sortby(array_agg(`t1`.`drugInfo`), array_agg(`t1`.`create_time`)), '@') AS `drugInfo`
FROM `ps_patient_info` AS `ppi` INNER JOIN (SELECT `pdo`.`id`, group_concat(`t1`.`drugInfo`) AS `drugInfo`, any_value(`pdo`.`order_seq`) AS `order_seq`, any_value(`pdo`.`order_amount`) AS `order_amount`, any_value(ifnull(`pdo`.`pay_time`, `pdo`.`create_time`)) AS `orderBuyTime`, any_value(`pdo`.`create_time`) AS `create_time`, any_value(`pps`.`store_name`) AS `store_name`, any_value(`pps`.`store_code`) AS `store_code`, any_value(`pdo`.`patient_id`) AS `patient_id`, any_value(`pdo`.`id`) AS `orderId`
FROM `ps_drug_order` AS `pdo` INNER JOIN (SELECT `pdpd`.`order_id`, concat_ws('*', `pdpd`.`drug_name`, CAST(`pdpd`.`amount` AS DECIMAL64(10,2))) AS `drugInfo`
FROM `ps_drug_prescription_detail` AS `pdpd`
WHERE `pdpd`.`status` = 1) t1 ON `pdo`.`id` = `t1`.`order_id` LEFT OUTER JOIN `ps_patient_store` AS `pps` ON `pdo`.`store_id` = `pps`.`id`
WHERE ((`pdo`.`status` = 1) AND (`pps`.`status` = 1)) AND (`pdo`.`store_id` IN (((SELECT `ps_patient_store`.`id`
FROM `ps_patient_store`
WHERE `ps_patient_store`.`pharmaceutical_company_id` = '1'))))
GROUP BY `pdo`.`id`) t1 ON `ppi`.`id` = `t1`.`patient_id` LEFT OUTER JOIN `ps_patient_store_reg` AS `ppsr` ON ((`ppsr`.`patient_id` = `ppi`.`id`) AND (`ppsr`.`status` = 1)) AND (`ppsr`.`is_create_store` = 1) LEFT OUTER JOIN `ps_patient_store` AS `pps` ON (`pps`.`id` = `ppsr`.`store_id`) AND (`pps`.`status` = 1) LEFT OUTER JOIN `ps_account_info` AS `pai` ON (`pai`.`id` = `ppi`.`archives_create_person`) AND (`pai`.`STATUS` = 1) LEFT OUTER JOIN (SELECT `ppi`.`id`, group_concat(`pii`.`icd_name`) AS `icdNames`
FROM `ps_patient_info` AS `ppi` LEFT OUTER JOIN `ps_patient_icd_reg` AS `ppir` ON `ppi`.`id` = `ppir`.`patient_id` LEFT OUTER JOIN `ps_icd_item` AS `pii` ON `pii`.`id` = `ppir`.`icd_id`
WHERE ((`ppi`.`status` = 1) AND (`ppir`.`status` = 1)) AND (`pii`.`status` = 1)
GROUP BY `ppi`.`id`) t3 ON `t3`.`id` = `ppi`.`id`
WHERE `ppi`.`status` = 1
GROUP BY `ppi`.`id`;

-----------------------------------------------------------

CREATE MATERIALIZED VIEW `tyyl_patient_disease_parameter_mv`
COMMENT "MATERIALIZED_VIEW"
DISTRIBUTED BY HASH(`patient_id`) BUCKETS 4
REFRESH ASYNC
PROPERTIES (
"replication_num" = "1",
"storage_medium" = "HDD"
)
AS SELECT `pd`.`patient_id`, `pd`.`account_id`
FROM `ps_patient_disease_parameter` AS `pd` INNER JOIN `ps_chronic_disease_template` AS `tem` ON `pd`.`disease_option_id` = `tem`.`id`
WHERE (`pd`.`patient_id` IN (((SELECT `t`.`patient_id`
FROM (SELECT `par`.`patient_id`, count(`par`.`patient_id`) AS `cn`
FROM `ps_patient_disease_parameter` AS `par`
WHERE (`par`.`disease_id` = -1) AND (`par`.`status` = 1)
GROUP BY `par`.`patient_id`
HAVING (count(`par`.`patient_id`)) = 1) t)))) AND (`tem`.`name` = '通用药历');