V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  CRVV  ›  全部回复第 4 页 / 共 28 页
回复总数  545
1  2  3  4  5  6  7  8  9  10 ... 28  
2022-11-17 15:08:19 +08:00
回复了 qiyong 创建的主题 程序员 面试中遇到的一道 sql 题
@DinnyXu
这种 SQL 在很多地方都用得到,而且这个题其实不难。
如果每个表都有几亿行,用 BigQuery 写一句 SQL 就能实现,速度也不慢。如果不写 SQL 你打算怎么做?
2022-11-17 14:46:13 +08:00
回复了 qiyong 创建的主题 程序员 面试中遇到的一道 sql 题
首先把销量的类型改成数字, `sales_volume` INT

最后都需要套一层子查询来重新排序,就不写了。
这三种写法都是用 ORDER BY volume DESC LIMIT 3 来选出前 3 ,还可以用 rank <= 3 来选前 3 的,如果有重复的会得到不同结果
都可以在最新的 MySQL 上执行

SELECT goods.name,
goods_sales_record.sales_volume,
goods_group.name AS group_name,
t.group_volume
FROM goods
INNER JOIN goods_sales_record ON goods.id = goods_sales_record.goods_id
INNER JOIN goods_group ON goods.group_id = goods_group.id
INNER JOIN (SELECT goods_group.id, sum(goods_sales_record.sales_volume) AS group_volume
FROM goods_group
INNER JOIN goods ON goods.group_id = goods_group.id
INNER JOIN goods_sales_record on goods.id = goods_sales_record.goods_id
GROUP BY goods_group.id) AS t ON t.id = goods_group.id
ORDER BY 2 DESC limit 3;

SELECT goods.name,
goods_sales_record.sales_volume,
goods_group.name AS group_name,
t.group_volume
FROM goods
INNER JOIN goods_sales_record ON goods.id = goods_sales_record.goods_id
INNER JOIN goods_group ON goods.group_id = goods_group.id
CROSS JOIN LATERAL (SELECT sum(goods_sales_record.sales_volume) AS group_volume
FROM goods INNER JOIN goods_sales_record on goods.id = goods_sales_record.goods_id
WHERE group_id = goods_group.id) AS t
ORDER BY 2 DESC limit 3;

SELECT goods.name,
goods_sales_record.sales_volume,
goods_group.name AS group_name,
sum(sales_volume) OVER (PARTITION BY goods_group.id) AS group_volume
FROM goods
INNER JOIN goods_sales_record ON goods.id = goods_sales_record.goods_id
INNER JOIN goods_group ON goods.group_id = goods_group.id
ORDER BY 2 DESC
LIMIT 3;
2022-11-17 13:52:43 +08:00
回复了 GopherDaily 创建的主题 MySQL [mysql] 混乱的时区
@GopherDaily

utf8mb3 是 MySQL 自己造出来的词,utf8mb4 也是
UTF-8 这个东西,本来是最多 6 bytes 的变长编码,根本没有什么 mb3 mb4
后面觉得 6 bytes 没用,4 bytes 就足够了,就把标准改成了最长 4 bytes

https://en.wikipedia.org/wiki/UTF-8#History
2022-11-17 12:38:57 +08:00
回复了 GopherDaily 创建的主题 MySQL [mysql] 混乱的时区
如果已经注意到这种问题了,答案就是别用 MySQL ,这玩意遍地是坑。


@simonCN
@maggch97
op 说的问题不是怎么存时间,怎么用 timestamp.
他说的是 MySQL 的 timestamp ,不是通常说的 unix timestamp
(类似的还有 MySQL 的 utf8 也不是 UTF-8)

MySQL timestamp 的坑至少包含了:
1. 范围是 1970-2038 年
2. TIMESTAMP 直接把输入用本机的时区来理解(如果有冬夏令时,就不可能正常工作),MySQL 8.0.19 才能自己指定时区。
3. 默认自动更新,DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

这个类型根本就没考虑拿来存一个正常的时间,它的设计就是用来让你 ON UPDATE CURRENT_TIMESTAMP 的

DATETIME 的坑可能更多,一样很难把时区搞定。换个 SQLite 都没这么多坑
2022-11-13 13:28:05 +08:00
回复了 RATIONALITY 创建的主题 问与答 求问五年内最稳的 4%收益方案
首先,收益率高的东西,风险一定高。
当然收益率低的东西风险不一定低,比如恒大的债券在 2021 年的收益率还只有 8%。

正常来说,银行存款的风险最小,你找一个利率 4% 的存款,假设银行和存款保险都不破产,这样就是安全的。
至于有没有其它小众方法能做到类似的收益率和风险,这就成高端问题了。
银行和存款保险有多大概率破产,也是高端问题。
高端问题的意思是,如果你自己不知道答案,你就不可能在不花大钱的情况下知道答案。

这里还有个怎么算收益的问题,假设有一家银行给你的人民币存款利率是 4%,然后人民币贬值了 5%,这样你认为自己的收益是正的还是负的?
这是个人偏好问题,根据偏好不同,op 这个问题的答案也不一样。
2022-11-13 13:09:29 +08:00
回复了 orenla 创建的主题 问与答 一直流鼻涕
如果你在北方,最快速有效的方法可能是去广东海南。
我自己的经验是下飞机就好了大半,隔天症状全消。
2022-11-12 11:56:34 +08:00
回复了 Wovvvv 创建的主题 Windows 为什么现在的 wsl2 还是无法挂载 ext4 文件系统
https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk

You will need to be on Windows 11 Build 22000 or later to access this feature.


WSL 的很多新功能都需要 Windows 11
2022-11-07 16:25:22 +08:00
回复了 v2byy 创建的主题 问与答 车被电瓶车撞了
@wangxiaoaer
实际上没有这种情况,那么小的地方放不下房子。
在进入主路前停下来,把头转过去一定可以看到后面有没有车。

有一种情况是往右转的时候右边有房子挡住了右边的视线,路还特别窄,这种情况通常需要鸣笛,而且路上通常会有让你鸣笛的牌子。
这是一个有 288k 订阅的 youtuber ,中间还在卖杯子。这种的,做 youtuber 可能是他的主业,至少也是个副业。

那么,他要做一个片子用汇编写一个小程序,他也不想直接把代码列出来然后一行一行讲,这样没有看着他一行一行写出来的感觉。所以,你看到的 youtube 成品,一定是这样很快速度被敲出来的代码,否则他的片子不好看,就不会获得 288k 的订阅。

当然,我不知道他到底能不能做到 op 说的 1-6 ,也许真的可以,但和这个片子的内容不相关。
2022-10-16 11:11:20 +08:00
回复了 hardwork 创建的主题 程序员 c/c++多线程读写问题,怎么反驳?
这种问题就和 python 的 dict 读写要不要加锁是一样的。
x86 的内存读写指令,python dict 的读写,这些确实 atomic ,不加锁通常也能得到正确的结果。
但是这么做会有一些问题,最简单的情况,一次读或者一次写当然没问题,但很难保证写出来的代码真的是这种单纯的情况。
写汇编这么做没任何问题,就是标准的做法。如果写 C ,请写正确的 C 代码,别玩这些花样。

另外,“理由是 int 读写都是一个指令完成”,这个理由是错的。
这和是不是一个指令没关系,CPU 不保证一条指令的 atomic ,比如在 x86 上跨 cacheline 的读写也是一条指令但不 atomic
CPU 的什么操作是 atomic 是个很复杂的事情,得去一个一个查。
2022-10-02 02:29:13 +08:00
回复了 simonlu9 创建的主题 生活 压抑太久,上来缓口气,不知道是否继续下去
@simonlu9
高速公路上绝对不能压线,不是扣分的问题。
我要是坐在高速公路压线的车上,会尽量把司机往死里骂。
2022-09-19 17:47:13 +08:00
回复了 ryougifujino 创建的主题 JetBrains 等 JetBrains 全家桶到 10 月续费的,现在是不是变成小丑了
@msg7086
要是能预知汇率,我就不在乎 Jetbrains 那几块钱了
2022-08-24 10:49:16 +08:00
回复了 Krime 创建的主题 Linux 突然想买树莓派,然后被这价格吓到了
@twor2 我看了半天才发现你回的是 @xsx107

1. 这个还真不是抬杠,任何性能优化的前提都是找到瓶颈,现实中遇到的性能问题大概率不是改进循环内存管理这些事情上的问题,刷算法题才经常遇到这些问题。现实中遇到性能问题,不论是不是树莓派 1 ,加机器通常都是成本最低的解决方式。

2. 你前面可不是这么说的。
"这次的通胀是不是由 QE 引起?大部分不是。"
怎么现在又是"主要原因"了?
如果是主要原因,你的意思是一楼说的对?

3.
我先声明一下我没觉得一楼说得对,我也没觉得他说得不对,我是真不知道这个问题的答案。
民科有一个很好认的特点,他总有一个结论,而且他确信这个结论是对的,民科从来不说"不知道"。
我看什么民科博主完全是你的臆想,我还真不看。

印钱是个很直观的词,你不喜欢的话不用也无所谓。
但我这人就喜欢这种直观的词。像什么静默指封城,动态清零指清不了零,通货膨胀指物价上涨,QE 指政*府增发货币,我不喜欢这些用法。

4. 教授您好。
2022-08-23 21:57:27 +08:00
回复了 Krime 创建的主题 Linux 突然想买树莓派,然后被这价格吓到了
@xsx107
第一段,如果这个 python 程序本来跑在树莓派 1 上面,那我觉得换台性能好的机器就是正确答案。

第二段,你有没有想过这些判断来自于哪里,或者说你为什么认为美国印钱不是导致树莓派涨价的原因。这里的可能性非常多,在我看来任何人都不能确凿地给出这个结论。比如 post covid 供给结构性问题和俄乌冲突发生的必要条件有没有可能包含美国印钱,东航坠机发生的必要条件有没有可能包含无限连任。我随便举了两个例子而已,仔细思考一下的话,这两件事情都有可能。

当然,我没有说树莓派涨价的原因是美国印钱。我只是看到你们对一个这么复杂的问题居然有一个这么自信的答案感觉有点神奇。
2022-08-16 02:07:01 +08:00
回复了 brader 创建的主题 程序员 除了 md5 有没有比较短的哈希算法
https://security.stackexchange.com/a/72685

直接截前面一段就行,要多长截多长
但是 md5 本来就是比较差的算法,再截一下就更差了,如果需要防碰撞就换个 sha256 之类的吧
2022-08-15 10:38:46 +08:00
回复了 kisshere 创建的主题 程序员 人脑为什么不能被 ROOT?
高达 00 里面那个地球轨道上绕一圈的太阳能板也是创业风口,造出来这个人类就再也不能担心什么能源什么碳排放了。

光速星际旅行也是创业风口,你装上乘客去附近的恒星绕一圈在再回来,你要多少钱那些有钱人给你多少钱。
@funnypc
这个功能本身不难,但问题是这输入法现在没有翻页。加了这个肯定需要翻页,翻页它就不太好做了。
@dfgddgf
所以我说的是 符合我自己的使用习惯,没说非得这么做。
五笔有个和拼音不一样的地方,把每个字拼音的第一个字母打出来很容易,但把五笔的第一个字母打出来没那么容易,需要思考一下。尤其现在绝大多数人不是打字员,不是看着字来打字的。

其实从某一年那种高级的拼音输入法出现的时候开始,五笔已经没什么速度上的优势了,反正我没有拼音熟手打得快。
五笔的词不是这么打的,五笔通常只打四个键,词和字都是四下出来,每四个键中间不按空格。如果有的字或者词只打 1-3 下就出来了,才会按一下空格。连续输入的字母会直接拆成四个一组来处理。

k 空格 /kh 空格 /khk 空格:中
khwx:中华,(khk 中)和(wxfj 华)的前两个键
atlg:共和国,(awu 共)(tkg 和)的第一个加(lgyi 国) 的前两个
kwwl: 中华人民共和国,(中华人国)这四个字的第一个键
xedhgggcntgg: 缓存(xedh)一致(gggc)性(ntgg)
khwxwwnaatlg:中华(khwx)人民(wwna)共和国(atlg)
trywku 空格:不是物质文化遗产,而是 射手座(tryw)啼(ku 空格)

所以
一致性高速缓存非均匀存储访问模型
肯定不是 rrbujbjtq ,而是拆成好几个词来打,一致 /性 /高速缓存 /非 /均匀 /存储 /访问 /模型

五笔输入法的词库并不是越大越好,最好是只包含用户确信是词组的词,这样既能打词组,又能让重码最少
比如高速缓存虽然在我这里是一个词组,但我通常不会打 ygxd ,而是打 ymgk(高速)xedh(缓存),因为要思考四个字的首键比较花时间,万一打出来又不是一个词,这些时间就浪费了。

我也写过一个五笔输入法,https://github.com/crvv/android_wubi_input
这玩意完全符合我自己的使用习惯,以致于用了好几年都没有再改进它的动力。
iOS 和 macOS 上的清歌输入法也符合我的使用习惯。
1  2  3  4  5  6  7  8  9  10 ... 28  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3747 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 10:27 · PVG 18:27 · LAX 02:27 · JFK 05:27
Developed with CodeLauncher
♥ Do have faith in what you're doing.