Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获得用户的第50次和第100次销售_Sql_Mariadb - Fatal编程技术网

Sql 获得用户的第50次和第100次销售

Sql 获得用户的第50次和第100次销售,sql,mariadb,Sql,Mariadb,数据库表中有许多产品。我想创建一份显示10号和25号的报告。。等等该产品的订单和购买人的日志 目前我有 select CONCAT(sales.lastName,' / ', sales.firstName) as salesNames, sales.created_at as Sale_Date FROM Sales JOIN users ON sales.user_id = users.id WHERE sales.status = 1 AND sales.created

数据库表中有许多产品。我想创建一份显示10号和25号的报告。。等等该产品的订单和购买人的日志

目前我有

select 
    CONCAT(sales.lastName,' / ', sales.firstName) as salesNames,
    sales.created_at as Sale_Date

FROM Sales
JOIN users ON sales.user_id = users.id
WHERE sales.status = 1
AND sales.created_at < CURDATE()

在MariaDB 10.2中,可以使用行号。您的解释不清楚-为什么要加入users表?产品是什么

但我认为你在寻找这样的东西:

select concat(u.lastName, ' / ', u.firstName) as salesNames,
       s.created_at as Sale_Date
from (select s.*,
             row_number() over (partition by s.product_id order by s.created_at) as seqnum
      from sales s
      where s.status = 1 and
            s.created_at < CURDATE()
     ) s join
     users u
     on s.user_id = u.id
where seqnum in (10, 25);

什么版本的MySQL?如果没有为每个用户递增的sale counter列,那么我们需要计算它,为每个销售将行标记为第1、第2、第3等。最后介绍了行数窗口函数!在MySQL 8.0中。对于早期版本,我们可以在精心编制的查询中使用MySQL用户定义变量来计算行号。是MySQL还是MariaDB?“这两个现在变得很不一样了。”“我的主人是MariaDB,MariaDB的版本是什么?”?10.2,更新、旧版本?Mariadb版本10.2
select concat(u.lastName, ' / ', u.firstName) as salesNames,
       s.created_at as Sale_Date
from (select s.*,
             row_number() over (partition by s.product_id order by s.created_at) as seqnum
      from sales s
      where s.status = 1 and
            s.created_at < CURDATE()
     ) s join
     users u
     on s.user_id = u.id
where seqnum in (10, 25);