前端之家收集整理的这篇文章主要介绍了
mysql – 每20次迭代更新SQL中的行,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从the NYC Yellow TaxiCab public dataset开始在Google BigQuery中有一个约100万行的表.从该链接可以看出,架构没有主键.每行代表一次旅行/交易,但没有customer_id字段.
我想添加一列customer_id并向其分发随机数,以便:
For rows 1-20,`customer_id` should be assigned `1`
For rows 21-40,`customer_id` should be assigned `2`
and so on..
换句话说,我希望表中的确切(和任何)20行具有特定值customer_id.
最佳答案
为每一行分配一个
随机id,为每个new_id
获取约20行的组:
#standardsql
SELECT CAST(FLOOR(COUNT(*) OVER()/20*RAND()) AS INT64) new_id,*
FROM (
SELECT login
FROM `ghtorrent-bq.ght_2017_04_01.users`
LIMIT 1000000
)
证明超过一百万行时会生成50,000个“customers_ids”: