V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cdswyda  ›  全部回复第 1 页 / 共 4 页
回复总数  79
1  2  3  4  
来自 GPT:

这段 SQL 查询的主要目的是从两个子查询或数据表 `total` 和 `averages` 中计算出一些业务指标,包括总营业额、销售率和降价率的当前月份和上个月份的值,以及相对于上个月的变化百分比。下面是对这段 SQL 的分析、评价和优化建议:

### 分析

1. **COALESCE 函数的使用**:这个函数用于处理 NULL 值。如果字段值为 NULL ,则 COALESCE 函数将其转换为指定的值(本例中为 0 )。

2. **计算总营业额和百分比变化**:
- `all_turnover`代表当前月份的总营业额,如果是 NULL 则显示为 0 。
- `all_turnover_percent`计算当前月与上月总营业额的百分比变化。这里用到了多个条件判断来处理不同的情况,例如如果上月和本月营业额都为 0 ,则百分比变化为 0 ;如果只有本月有营业额,则视为 100%增长,等等。

3. **计算平均销售率和降价率及其百分比变化**:
- 类似地,`sales_rate`和`reduce_rate`分别表示当前月份的平均销售率和平均降价率,如果这些值为 NULL ,则显示为 0 。
- `sales_rate_percent`和类似的字段计算这些指标的月度百分比变化。

4. **ROUND 和 NULLIF 函数**:
- ROUND 函数用于四舍五入计算结果到指定的小数位数。
- NULLIF 函数在这里用于避免除以 0 的情况。如果分母(上个月的值)为 0 ,则该表达式返回 NULL ,COALESCE 函数随后将其转换为 0 。

### 评价

- **复杂性**:这段 SQL 较为复杂,特别是在处理百分比变化的部分,使用了多重条件判断。
- **重复代码**:相似的逻辑和条件判断在处理不同的指标时被重复使用,这增加了维护成本。

### 优化建议

1. **重构重复逻辑**:可以考虑将计算百分比变化的逻辑抽象成一个函数或者使用 CTE (公用表达式),以减少代码重复。

2. **提高可读性**:对于复杂的条件逻辑,添加注释或者使用更清晰的格式排版可以提高 SQL 的可读性。

3. **性能优化**:如果这段 SQL 的性能不理想,可以考虑检查 `total` 和 `averages` 子查询或表的索引策略,确保这些查询尽可能高效。

4. **错误处理**:确保对所有可能的边缘情况(如除以 0 )进行了适当的处理。

最后,具体优化措施还需根据实际的数据和业务需求来确定。
#15 @murmur 我只是用显卡坞的来说明,外接的速率未必慢,也未必不可靠。
至于玩具与否,要看怎么定义了,便携、重量都不在这里的考虑之内,更重要的是价格极其不具备性价比。
楼上有说 typec 不稳定的,真不见得。要是不稳定能哪些显卡坞都怎么玩。
另外外接硬盘真没啥问题,花点钱买根好线。自己家里一直外界用,同事公司的 mac mini 也一直外接硬盘,很稳。
1. 你是 Mac studio 说明没有便携需求。
2. 你都花一千五了,一半的钱硬盘,再拿两三百能买 40G 兼容雷电的硬盘盒子,再加钱的还有带主动散热的。
341 天前
回复了 frankyzf 创建的主题 Python 技术类电子书国内在哪个平台买比较好
如上面的建议,不是很建议电子书。
但是也能理解电子书的好处。如果真要电子书的话,我的建议是买能给 pdf 的,这样直接电脑上看,翻页对比,做批注啥的都可以。
异步社区上可以加钱买 pdf 电子版。
那必须 hugo 啊,ms 时间级别构建出几百个页面的静态网页
363 天前
回复了 cdswyda 创建的主题 NAS 硬盘 05 标黄了,这个硬盘还能用吗?
@vcn8yjOogEL #2 网上搜到大概也是这么说。
是说硬盘设计有一些备用的,已经出问题了,这些备用的启用了,但是备用数目有限,用完就会炸。 而且出这个问题说明本身可能有啥毛病了,是这个意思吗?
363 天前
回复了 cdswyda 创建的主题 NAS 硬盘 05 标黄了,这个硬盘还能用吗?
@rojer12 都不记得哪来的了,不是新买的,新买的肯定要退还了。
2023-11-27 08:04:12 +08:00
回复了 aixin2019 创建的主题 浏览器 我准备从 Chrome 转向 Edge,你们做何选择?
半年前换了,这不是基本无缝切换的嘛。 啥时候想 Chrome 随时可以再切回去
2023-11-24 08:29:43 +08:00
回复了 Ainokiseki 创建的主题 程序员 和 mentor 代码习惯不一样,好头痛
我绝对绝对站你的 mentor 。

不过话说回来,看到这个,我突然想到,我花自己很长时间去给别人 review 的代码,别人会不会也在某个地方在吐槽我。
#68 不知道哪里来的优越感,用 Electron 的都是垃圾吗? 那么看看每天在用多少垃圾?

工具永远只是工具。
@luyinge #51 那我个人认为还是老老实实用类 electron 这种平台吧,诚然是多点内存,但是真的用户不懂也不 care 的。

不过如果只是开发人员自己折腾的、自用小范围用的、测试用的那就无所谓了,怎么折腾都可以,能实现就行。
我也干过下载内容里面直接带个二进制起个本地 webserve 浏览下载附件的
可能只有有的开发人员认为 electron 是垃圾吧。
真的用户,99.9999% 都不知道啥叫 Electron ,也不知道啥叫 http 。

话说本地二级制文件启动 http server + 系统浏览器的话,那么是不是直接给用户一个网址、二维码、或者直接下载一个网页的快捷方式,然后直接访问远端 http server 更省事呢。
2023-11-22 14:15:59 +08:00
回复了 Jaeger 创建的主题 软件 Obsidian 最优的跨平台数据同步方案是什么?
不太懂为何这么复杂,git 不就搞定了吗?

要提交什么,不提交什么 都可以 gitignore 控制

obsidian git 还能设置自动推送和拉取,考虑数据隐私的话,git 自建
@chanChristin #7 vscode 叫 snippets idea 中叫 Live Templates 在 Settings -> editors 下(webstorm 应该和 idea 一样的)。这玩意应该都是编辑器自带的,不需要额外插件。
了解下 snippets ,这个可以自己配,写个 json 文件就行。 作用就是敲个前缀,可以自动替换成一大段代码。 很多插件也就是提供了这个功能。
或者写插件用自动补全 好像是叫 CompletionItemProvider ,这个可以用前面输入的一段做自定义查询然后提供列表。

但是我感觉是固定片段的话 snippets 就够,关键字定义好 都按这个来就是。
2023-11-17 14:06:01 +08:00
回复了 nodejsexpress 创建的主题 Edge Edge 浏览器并没有比 chrome 节省内存
半年前从 Chrome 切到 Edge 的,自己做过测试,Edge 更快,半年过去了,不知道啥情况。
不过两个基本都一样,切换也没啥成本,可以随便切回去。
2023-11-17 14:02:48 +08:00
回复了 vduang 创建的主题 NAS 群晖 nas 空闲时风扇也会一直转吗?
开的安静模式,风扇会转,但是不把耳朵贴上去的话,听不到声音。
2023-11-10 14:37:05 +08:00
回复了 snow668 创建的主题 DNS DNS 劫持
@snow668 #21 问题是个 wifi 的密码的问题吗?
1. 你走别人的网络,理论上你的数据全部从人家那里过。 实际网络通信并非全部都加密的,有的东西就是在裸奔,不怕别人看。
2. 别人接入你的 WiFi ,通常家庭局域网默认都未设防的,也就是别人能比较轻易的访问你家的内部网络。
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5985 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 06:22 · PVG 14:22 · LAX 22:22 · JFK 01:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.