相关疑难解决方法(0)

如何为每个成员选择最新的输入?

假设我有一个MySQL表:

??????????????????????????????????
? time ? mid ? field_1 ? field_2 ?
??????????????????????????????????
?  100 ?   1 ?      32 ?      54 ?
?  100 ?   2 ?       0 ?      34 ?
?  100 ?   3 ?      44 ?      99 ?
?  200 ?   1 ?       0 ?      45 ?
?  200 ?   2 ?       0 ?      45 ?
?  200 ?   3 ?       4 ?      59 ?
?  200 ?   4 ?      45 ?      45 ?
??????????????????????????????????

time是UNIX时间戳.mid是会员ID.field_1由会员提供.field_2自动填充.

我希望为所有成员选择具有最近非零field_1的行.因此查询将导致:

??????????????????????????????????
? …

mysql

5
推荐指数
1
解决办法
77
查看次数

mySql获取重复条目的最后记录

可能重复:
检索每个组中的最后一条记录

大家好我有我的表数据如下

ID   FedTaxID  RegularPay  Payperiodnumber

1    562545366   500            1
2    562545366   501            1
3    562545366   5000           2
Run Code Online (Sandbox Code Playgroud)

我想得到如下数据

 ID    FedTaxID    RegularPay   Payperiodnumber
 2     562545366     501            1
 3     562545366     5000           2
Run Code Online (Sandbox Code Playgroud)

我尝试了一些如下的事情,但我没有得到所需的结果

select max(id) ID,regularpay,fedtaxid,payperiodnumber
from tblemployeegrosswagesn1 where fedtaxid="562545366"
group by payperiodnumber
having count(*) >= 1;
Run Code Online (Sandbox Code Playgroud)

谁能帮我

mysql

4
推荐指数
1
解决办法
5264
查看次数

如何选取每个ID的最后一条记录

我需要从表中提取每个用户的最后记录。表架构如下所示。

mytable

product | user_id |
-------------------
   A    |   15    |
   B    |   15    |
   A    |   16    |
   C    |   16    |
-------------------
Run Code Online (Sandbox Code Playgroud)

我想要得到的输出是

product | user_id |
-------------------
   B    |   15    |
   C    |   16    |

Run Code Online (Sandbox Code Playgroud)

基本上是每个用户的最后记录。

提前致谢!

sql postgresql greatest-n-per-group

4
推荐指数
1
解决办法
2万
查看次数

如何查询每天的最后一条记录

我有一个表功能,有一个名为sample_time的datetimetz字段和一个名为amp_hours的列.

amp_hours字段大约每两分钟获得一次记录,并在午夜每晚重置.

我想看看每天最后一条记录的sample_time和amp_hours.

我对SQL很新,所以我可能会忽略一个明显的答案.

我看到这篇关于如何选择组的最后一条记录的帖子,但我对SQL不熟悉以使其在日期时间内工作:

我想使用lead()lag()比较记录的日期和下一条记录,但我使用postgresql 8.3,我认为窗口是在8.4中引入的.

postgresql timestamp

3
推荐指数
1
解决办法
2424
查看次数

在JPQL中选择带有group by和max的行

我有以下结构。不是在一张表中,而是为了保持简单:

Press       | Batch        | Start time
-------------------------------------------------
PRESS_1     | 2051         | 2017-05-18T00:00:00
PRESS_1     | 2052         | 2017-05-19T00:00:00
PRESS_2     | 2053         | 2017-05-20T00:00:00
PRESS_2     | 2054         | 2017-05-16T00:00:00
PRESS_3     | 2055         | 2017-05-12T00:00:00
PRESS_3     | 2056         | 2017-05-18T00:00:00
PRESS_3     | 2057         | 2017-05-19T00:00:00
Run Code Online (Sandbox Code Playgroud)

我想获得每台印刷机的最后一个计划批次。结果应该是:

Press       | Batch        | Start time
-------------------------------------------------
PRESS_1     | 2052         | 2017-05-19T00:00:00
PRESS_2     | 2053         | 2017-05-20T00:00:00
PRESS_3     | 2057         | 2017-05-19T00:00:00
Run Code Online (Sandbox Code Playgroud)

但是,当我按按分组并且还想选择批次时。我有义务将批次放入“分组依据”条款中。

Select x.Press, x.Batch, max(x.StartTime)
From myTable x
Group by x.Press
Run Code Online (Sandbox Code Playgroud)

如何使用 JPQL 实现这一点?

sql jpql

3
推荐指数
1
解决办法
3418
查看次数

Laravel eloquent 获取分组行的最新行

使用 Eloquent,试图找到一种方法来获取按以下方式分组的每一行的最新行:exchange、base、quote

数据

exchange    base    quote   price   value   created_at

bittrex     BTC     USD     10000   10000   2018-01-05
bittrex     BTC     USD     9000    9000    2018-01-01
poloniex    BTC     USD     10001   10001   2018-01-05
poloniex    BTC     USD     9000    9000    2018-01-01
binance     BTC     USD     10002   10002   2018-01-05
binance     BTC     USD     9000    9000    2018-01-01
binance     ETH     USD     800     800     2018-01-05
binance     ETH     USD     700     700     2018-01-01
Run Code Online (Sandbox Code Playgroud)

结果:

bittrex     BTC     USD     10000   10000   2018-01-05
poloniex    BTC     USD     10001   10001   2018-01-05
binance     BTC     USD     10002   10002   2018-01-05
binance     ETH     USD     800 …
Run Code Online (Sandbox Code Playgroud)

greatest-n-per-group laravel eloquent laravel-5

3
推荐指数
1
解决办法
4519
查看次数

mysql:按用户获取上次对话记录

我需要通过 to_user 按降序获取最后的对话记录。我有一个叫做消息的表。请查看以下屏幕截图: 在此处输入图片说明

我希望以下列方式输出:

 from_user| to_user | message         | 
  241     |  226    |   How are you?  |
  241     |  256    | Hi test message |
Run Code Online (Sandbox Code Playgroud)

我试过这个查询:

SELECT * FROM `messages` where from_user=241 group by to_user order by created DESC
Run Code Online (Sandbox Code Playgroud)

我得到以下错误的输出:

在此处输入图片说明

提前致谢。

mysql sql

1
推荐指数
1
解决办法
986
查看次数

SQL:获取每个唯一ID的最后一行

我有一张桌子.我想获得每个独特的CoatingChambersID的最后一行.有24个独特的腔室,最后一行表示腔室处于最后状态的时间.

我可以得到一个如此独特的列表:

SELECT distinct CoatingChambersID, MAX(LastDT) as LastDT
  FROM [REO].[dbo].[CoatingChamberStateLogs] 
  group by CoatingChambersID
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何将其加入到原始表中.

在此先感谢您的帮助!

CoatingChamberStateLogsID   CoatingChambersID   StartDT LastDT  IntervalMin  CoatingChamberStatesID 
1001712 1003    2017-01-24 23:09:29.4632108 2017-01-25 03:04:32.6758500 235.053543986667    1007    
1001713 1006    2017-01-24 23:09:29.4632108 2017-01-25 00:30:30.8478433 81.0230772083333    1007    
1001714 1015    2017-01-24 23:09:29.4632108 2017-01-25 04:21:33.7601011 312.071614838333    1007    
1001715 1024    2017-01-24 23:09:29.4632108 2017-01-31 04:43:21.5643016 8973.86835151333    1001    
1001716 1016    2017-01-24 23:09:29.4632108 2017-01-25 00:01:30.4200122 52.01594669 1006    
1001717 1017    2017-01-24 23:09:29.4632108 2017-01-24 23:15:29.8261612 6.00604917333333    1006    
1001718 1018    2017-01-24 23:09:29.4632108 2017-01-26 01:42:49.4040548 1593.3323474    1006    0   
1001719 1019 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server greatest-n-per-group

1
推荐指数
1
解决办法
606
查看次数

限制从内部联接返回的行数

我有两张桌子,车辆的描述和一个lat/long的理想表格.两个表都有一个Id键(PK和FK).

我的SELECT看起来像这样

SELECT vehicles.id,          vehicles.description, vehicles.type, 
       positions.time_stamp, positions.latitude,   positions.longitude

       FROM         vehicles
       INNER JOIN   positions 
       ON           vehicles.id=positions.id
Run Code Online (Sandbox Code Playgroud)

我想订购和限制它,以便它只显示每辆车报告的最新poisiotn的连接值.

我怎样才能做到这一点?谢谢


[更新]我创建了这个SqlFiddle演示,它没有提供所需的结果.

我想我需要一些东西

   ORDER BY     positions.time_stamp DESC
   LIMIT SELECT COUNT(*) FROM vehicles
Run Code Online (Sandbox Code Playgroud)

如果只是有效的语法: - /


[进一步更新]对于那些关注thinsg执行顺序的人:

  1. positions表中没有删除,只有插入
  2. 每辆车每隔几分钟插入一次
  3. 我可以忍受奇怪的异常昙花一现,我觉得这种情况非常罕见
  4. 车辆的细节不太可能改变,我所做的只是增加新的位置

这会让它变得更容易吗?

mysql greatest-n-per-group

0
推荐指数
1
解决办法
1793
查看次数

以desc顺序选择唯一行

我想按时间DESC选择每个id顺序插入的最后一行

s.no     id    message           status     time
1        3     this is msg 1     unread     100001
2        2     this is msg 2     read       100002
3        4     this is msg 3     read       100003
4        3     this is msg 4     unread     100004
5        2     this is msg 5     read       100005
6        3     this is msg 6     unread     100006
Run Code Online (Sandbox Code Playgroud)

我在用

select * from table group by id order by MAX(time) DESC
Run Code Online (Sandbox Code Playgroud)

它给出了正确的id顺序,但行互换了

我希望它像:

s.no     id    message           status     time
6        3     this is msg …
Run Code Online (Sandbox Code Playgroud)

mysql sql greatest-n-per-group

0
推荐指数
1
解决办法
123
查看次数

如何根据两个字段的最大值选择记录?

鉴于以下简单表:

+-----+-------------+---------+----+
| id_ | match_op_id | version | p1 |
+-----+-------------+---------+----+
|   1 |           1 |       1 |  1 |
|   2 |           1 |       1 |  5 |
|   3 |           1 |       2 |  3 |
|   4 |           1 |       2 |  4 |
|   5 |           2 |       1 |  1 |
|   6 |           2 |       1 |  5 |
|   7 |           2 |       2 |  3 |
|   8 |           2 | …
Run Code Online (Sandbox Code Playgroud)

mysql groupwise-maximum

0
推荐指数
1
解决办法
131
查看次数