优化一下此sql,select count(1) "笔数",trunc(SUM(A.JYJE)/10000,2) "金额/万元" from SKY.JY_RKLS A where a.dcpzlx_dm = '1' and substr(A.YSKM_DM,0,7) = '1010602' and A.JYJE >= 0 and substr(A.PZHM , 0,1) = '6' and A.Date >= DATE '2023-03-01';
时间: 2024-04-23 19:22:08 浏览: 150
可以考虑如下优化:
1. 将 WHERE 子句中的 A.JYJE >= 0 改为 A.JYJE > 0,这样可以避免将值为 0 的记录也计入结果中。
2. 将 WHERE 子句中的 substr(A.PZHM, 0, 1) = '6' 改为 A.PZHM LIKE '6%',这样可以使用索引快速定位符合条件的记录。
3. 将 WHERE 子句中的 A.Date >= DATE '2023-03-01' 改为 A.Date >= TO_DATE('2023-03-01', 'YYYY-MM-DD'),这样可以避免强制转换导致的性能损失。
综上所述,优化后的 SQL 如下:
SELECT COUNT(1) "笔数", TRUNC(SUM(A.JYJE)/10000, 2) "金额/万元"
FROM SKY.JY_RKLS A
WHERE A.dcpzlx_dm = '1'
AND SUBSTR(A.YSKM_DM, 0, 7) = '1010602'
AND A.JYJE > 0
AND A.PZHM LIKE '6%'
AND A.Date >= TO_DATE('2023-03-01', 'YYYY-MM-DD');
相关问题
const ctx = wx.createCanvasContext('photo_canvas'); const SIZE = 200 const ratio = Math.max(res.width / SIZE, res.height / SIZE, 1) const smallWidth = Math.trunc(res.width / ratio) const smallHeight = Math.trunc(res.height / ratio) // 将宽高大小设置到页面的canvas元素(checkCanvas)上 ctx.drawImage(tempFilePaths[index], 0, 0, smallWidth, smallHeight) ctx.draw(false, function () { wx.canvasToTempFilePath({ width: smallWidth, height: smallHeight, destWidth: smallWidth, destHeight: smallHeight, canvasId: 'photo_canvas',请问怎么修改代码中的参数,让输出图片保持原始比列,而不是剪切图片或形变的图片
要让输出的图片保持原始比例,你可以修改代码如下:
```
const ctx = wx.createCanvasContext('photo_canvas');
const SIZE = 200;
const ratio = Math.max(res.width / SIZE, res.height / SIZE, 1);
const smallWidth = Math.trunc(res.width / ratio);
const smallHeight = Math.trunc(res.height / ratio);
const x = (smallWidth - res.width) / 2;
const y = (smallHeight - res.height) / 2;
ctx.drawImage(tempFilePaths[index], x, y, res.width, res.height, 0, 0, smallWidth, smallHeight);
ctx.draw(false, function () {
wx.canvasToTempFilePath({
width: smallWidth,
height: smallHeight,
destWidth: smallWidth,
destHeight: smallHeight,
canvasId: 'photo_canvas',
success: function (res) {
console.log(res.tempFilePath);
}
});
});
```
这里使用了`drawImage`方法的另一个重载版本,它可以指定在画布上绘制图像的位置和大小,以及将图像的哪一部分裁剪出来绘制。首先计算出在画布上绘制图像的起始坐标,使其居中显示,然后指定绘制的图像大小为原始大小,最后指定输出的图片大小为缩小后的大小。
const smallWidth = Math.trunc(res.width / ratio)
你的第一个问题是关于以下代码的解释:
```
const smallWidth = Math.trunc(res.width / ratio)
```
这段代码的作用是计算一个比例缩小后的宽度。其中,`res.width`是原始宽度,`ratio`是缩小比例。`Math.trunc()`函数用于向下取整,确保最终的宽度是一个整数。计算结果会被赋值给变量`smallWidth`。
阅读全文