加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 在时间上分配表

发布时间:2020-12-12 08:34:23 所属栏目:MsSql教程 来源:网络整理
导读:我有一个 MySQL表,每个用户大约有3000行.其中一列是datetime字段,它是可变的,因此这些行不按时间顺序排列. 我想在图表中可视化时间分布,所以我需要一些单独的数据点. 20个数据点就够了 我可以这样做: select timefield from entries where uid = ? order by
我有一个 MySQL表,每个用户大约有3000行.其中一列是datetime字段,它是可变的,因此这些行不按时间顺序排列.

我想在图表中可视化时间分布,所以我需要一些单独的数据点. 20个数据点就够了

我可以这样做:

select timefield from entries where uid = ? order by timefield;

并看第150行.

或者我可以做20个单独的查询,并使用limit 1和offset.

但是一定要有更有效的解决方案

解决方法

Michal Sznajder几乎拥有它,但是您不能在SQL中的WHERE子句中使用列别名.所以你必须把它包装成派生表.我试过这个,它返回20行:
SELECT * FROM (
    SELECT @rownum:=@rownum+1 AS rownum,e.*
    FROM (SELECT @rownum := 0) r,entries e) AS e2
WHERE uid = ? AND rownum % 150 = 0;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读