mysql – 每20次迭代更新SQL中的行

前端之家收集整理的这篇文章主要介绍了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”:

enter image description here

猜你在找的MySQL相关文章