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 )进行了适当的处理。

最后,具体优化措施还需根据实际的数据和业务需求来确定。
2023-12-29 08:25:41 +08:00
回复了 xiaoker 创建的主题 Mac Studio Mac studio 扩容现在成熟了吗?要考量什么事情?
#15 @murmur 我只是用显卡坞的来说明,外接的速率未必慢,也未必不可靠。
至于玩具与否,要看怎么定义了,便携、重量都不在这里的考虑之内,更重要的是价格极其不具备性价比。
2023-12-28 23:04:26 +08:00
回复了 xiaoker 创建的主题 Mac Studio Mac studio 扩容现在成熟了吗?要考量什么事情?
楼上有说 typec 不稳定的,真不见得。要是不稳定能哪些显卡坞都怎么玩。
另外外接硬盘真没啥问题,花点钱买根好线。自己家里一直外界用,同事公司的 mac mini 也一直外接硬盘,很稳。
2023-12-28 23:00:16 +08:00
回复了 xiaoker 创建的主题 Mac Studio Mac studio 扩容现在成熟了吗?要考量什么事情?
1. 你是 Mac studio 说明没有便携需求。
2. 你都花一千五了,一半的钱硬盘,再拿两三百能买 40G 兼容雷电的硬盘盒子,再加钱的还有带主动散热的。
2023-12-22 09:57:40 +08:00
回复了 frankyzf 创建的主题 Python 技术类电子书国内在哪个平台买比较好
如上面的建议,不是很建议电子书。
但是也能理解电子书的好处。如果真要电子书的话,我的建议是买能给 pdf 的,这样直接电脑上看,翻页对比,做批注啥的都可以。
异步社区上可以加钱买 pdf 电子版。
2023-12-13 08:55:36 +08:00
回复了 takefancy 创建的主题 程序员 轻量博客程序,除了纯静态的,有什么值得推荐的?
那必须 hugo 啊,ms 时间级别构建出几百个页面的静态网页
2023-11-30 09:15:00 +08:00
回复了 cdswyda 创建的主题 NAS 硬盘 05 标黄了,这个硬盘还能用吗?
@vcn8yjOogEL #2 网上搜到大概也是这么说。
是说硬盘设计有一些备用的,已经出问题了,这些备用的启用了,但是备用数目有限,用完就会炸。 而且出这个问题说明本身可能有啥毛病了,是这个意思吗?
2023-11-30 09:10:34 +08:00
回复了 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   ·   实用小工具   ·   6069 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 02:31 · PVG 10:31 · LAX 18:31 · JFK 21:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.