androidboot.force_super_partition
时间: 2023-12-04 15:05:56 浏览: 28
`androidboot.force_super_partition` 是一个 Android 系统的启动参数,用于强制使用 Android 10 之后引入的 Super Partition 技术。Super Partition 是一种将多个分区组合成一个虚拟分区的技术,可以提高系统分区的灵活性和可靠性。如果设置了 `androidboot.force_super_partition=true`,则系统将强制使用 Super Partition 技术来管理分区,否则将按照传统方式管理分区。
相关问题
SET @batch_date = '20230222'; set @partition_name=concat('p',@batch_date); set @stat=concat('alter table tb_bond_price_comparision_reuslt truncate partition ',@partition_name); prepare stmt from @stat; execute stmt; insert into tb_bond_price_comparision_reuslt select distinct org.ISIN, mul.Broker_Yield, mul.Broker_Price, org.MARKET_PRICE, case when org.MARKET_PRICE > mul.Broker_Price then 'Broker Price' else 'BVAL' end as MARKET_PRICE_MIN, org.TRADE_REF, case when org.MARKET_PRICE > mul.Broker_Price then mul.Broker_Price else org.MARKET_PRICE end as MARKET_PRICE_MIN, case when org.MARKET_PRICE > mul.Broker_Price then mul.Broker_Price * org.NOMINAL_AMT else org.MARKET_PRICE * org.NOMINAL_AMT end as MARKET_VALUE_MIN, org.dt from tb_trade_blotter_op_sec org left join tb_bond_price_comparision_trade_blotter_op_sec_mul mul on org.TRADE_REF = mul.TRADE_REF and org.ISIN = mul.ISIN and org.dt = mul.dt where org.dt = @batch_date转换为mybatis执行语句以及生成service层代码
首先,将SQL语句转换为MyBatis执行语句:
```sql
<insert id="insertBondPriceComparisonResult" parameterType="string">
SET @batch_date = #{batchDate};
SET @partition_name = CONCAT('p', @batch_date);
SET @stat = CONCAT('ALTER TABLE tb_bond_price_comparision_reuslt TRUNCATE PARTITION ', @partition_name);
PREPARE stmt FROM @stat;
EXECUTE stmt;
INSERT INTO tb_bond_price_comparision_reuslt
SELECT DISTINCT
org.ISIN,
mul.Broker_Yield,
mul.Broker_Price,
org.MARKET_PRICE,
CASE
WHEN org.MARKET_PRICE > mul.Broker_Price THEN 'Broker Price'
ELSE 'BVAL'
END AS MARKET_PRICE_MIN,
org.TRADE_REF,
CASE
WHEN org.MARKET_PRICE > mul.Broker_Price THEN mul.Broker_Price
ELSE org.MARKET_PRICE
END AS MARKET_PRICE_MIN,
CASE
WHEN org.MARKET_PRICE > mul.Broker_Price THEN mul.Broker_Price * org.NOMINAL_AMT
ELSE org.MARKET_PRICE * org.NOMINAL_AMT
END AS MARKET_VALUE_MIN,
org.dt
FROM tb_trade_blotter_op_sec org
LEFT JOIN tb_bond_price_comparision_trade_blotter_op_sec_mul mul
ON org.TRADE_REF = mul.TRADE_REF AND org.ISIN = mul.ISIN AND org.dt = mul.dt
WHERE org.dt = @batch_date;
</insert>
```
然后,生成对应的Service层代码:
```java
@Service
public class BondPriceComparisonResultServiceImpl implements BondPriceComparisonResultService {
@Autowired
private BondPriceComparisonResultMapper bondPriceComparisonResultMapper;
@Override
public void insertBondPriceComparisonResult(String batchDate) {
bondPriceComparisonResultMapper.insertBondPriceComparisonResult(batchDate);
}
}
```
SELECT f.PAR_FAULT_CODE AS "parFaultCode", f.FAULT_NAME AS "faultName", COALESCE( r.REPORT_DEPT_CODE, 'N/A' ) AS "reportDeptCode", COUNT( r.REPORT_DEPT_CODE ) AS "report", SUM(COUNT(r.REPORT_DEPT_CODE)) OVER (PARTITION BY f.FAULT_CODE) AS "reportCount" FROM FAULT_TYPE f LEFT JOIN FAULT_REPORT r ON f.FAULT_CODE = r.FAULT_CODE GROUP BY f.PAR_FAULT_CODE, f.FAULT_NAME, COALESCE( r.REPORT_DEPT_CODE, 'N/A' ), f.FAULT_CODE ORDER BY f.PAR_FAULT_CODE, f.FAULT_NAME在fauleName加一个标题为合计字段 并且根据reportDeptCode分组算出对应的reportCount
可以在SELECT语句中使用CASE WHEN语句来对 faultName 进行处理,添加 "合计" 字段。具体的SQL语句如下所示:
```
SELECT f.PAR_FAULT_CODE AS "parFaultCode",
CASE WHEN COALESCE(r.REPORT_DEPT_CODE, 'N/A') = 'N/A' THEN f.FAULT_NAME
ELSE f.FAULT_NAME || ' 合计' END AS "faultName",
COALESCE(r.REPORT_DEPT_CODE, 'N/A') AS "reportDeptCode",
COUNT(r.REPORT_DEPT_CODE) AS "report",
SUM(COUNT(r.REPORT_DEPT_CODE)) OVER (PARTITION BY f.FAULT_CODE) AS "reportCount"
FROM FAULT_TYPE f
LEFT JOIN FAULT_REPORT r ON f.FAULT_CODE = r.FAULT_CODE
GROUP BY f.PAR_FAULT_CODE, f.FAULT_NAME, COALESCE(r.REPORT_DEPT_CODE, 'N/A'), f.FAULT_CODE
ORDER BY f.PAR_FAULT_CODE, f.FAULT_NAME;
```
在这个SQL语句中,我们使用了 CASE WHEN 语句来判断 reportDeptCode 是否为 'N/A',如果是则不添加 "合计" 字段,否则在 faultName 后面添加 " 合计"。最后按照指定的字段进行分组和排序,计算 reportCount。