标签: greatest-n-per-group

SQL Server独特的问题

我需要能够为每个具有最大值的名称选择第一行.

我有一张表格如下:

id  name  value

0   JOHN  123
1   STEVE 125
2   JOHN  127
3   JOHN  126
Run Code Online (Sandbox Code Playgroud)

所以我期待回归:

id  name  value

1   STEVE 125
2   JOHN  127
Run Code Online (Sandbox Code Playgroud)

关于如何执行此操作的MSSQL语法的任何想法?

sql t-sql sql-server group-by greatest-n-per-group

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

使用distinct在sql server中不起作用

由于某种原因,以下DISTINCT不起作用.我期待电子邮件专栏只有一个b@gmail.com,但我得到两个相同的.

 1> SELECT DISTINCT t.Email,t.Lat_From,t.Lon_From 
      FROM tbl_Trip t,tbl_User u
      WHERE t.Email like u.Email AND u.Member_Of like 'yahoo'
 2> go

  Email         Lat_From            Lon_From
  ------------- ------------------- -----------------------
  b@gmail.com   41.773289200000001  -71.378798500000002
  b@gmail.com   41.908398699999999  -71.436531000000002
Run Code Online (Sandbox Code Playgroud)

(2行受影响)

sql sql-server greatest-n-per-group

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

sql为两个连接表中第二个表的前5个记录

我有2张桌子.studentstudent_records.

学生表有S_id并且在student_records中有外键.

加入这些表时,我需要1个学生ID和来自student_records表的前5个记录,用于该学生ID.

__PRE__
1来自学生表,'abc','dedw'等等来自学生表中student_records 还有一个活动字段.如果Active = 1,则显示来自student_records的前5条记录,如果Active = 0,则只有1行的studentid

t-sql sql-server greatest-n-per-group

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

Mysql选择一个重复的行

我试图在mysql表中针对ticket_id选择重复条目的最新条目,我的当前是这样的.

SELECT  * ,
        COUNT(*) AS cnt ,
        ticket_id
FROM    temp_tickets
GROUP BY ticket_id
ORDER BY id DESC
Run Code Online (Sandbox Code Playgroud)

它给出了一行重复的次数,但我能够选择那些多行的最新行

假设我有3个ticket_id,它被重复了5次,所以现在我想从所有这3个id中选择最新的事件.

Lemme知道我是否必须更具体.

谢谢

mysql duplicates greatest-n-per-group

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

每个x字段只有n条记录

鉴于此数据集:

ID  Name            City            Birthyear
1   Egon Spengler   New York        1957
2   Mac Taylor      New York        1955
3   Sarah Connor    New York        1959
4   Jean-Luc Picard La Barre        2305
5   Ellen Ripley    Nostromo        2092
6   James T. Kirk   Nostromo        2233
7   Henry Jones     La Barre    1899
Run Code Online (Sandbox Code Playgroud)

我怎样才能从每个城市只获得2条记录?

mysql greatest-n-per-group

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

mySql为每个用户选择最后一个条目

我有两张桌子:

users:
user_id    user_name

data:
user_id    user_data    user_time
Run Code Online (Sandbox Code Playgroud)

我想从数据表中选择最新的条目,但返回user_name, user_id, user_datauser_time.

我尝试了以下查询,但它返回第一个条目,而不是每个用户的最后一个条目:

sql = "SELECT users.user_name, users.user_id, data.user_data, data.user_time
FROM users 
INNER JOIN data ON data.user_id = users.user_id
GROUP BY users.user_name
ORDER BY data.user_time DESC";
Run Code Online (Sandbox Code Playgroud)

mysql greatest-n-per-group

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

GROUP BY也是SELECT非常量列

我的数据库中有2个表:

log_visitors:
--------------------
id | host_id


log_access:
--------------------
visitor | document | timestamp
Run Code Online (Sandbox Code Playgroud)

log_access.visitor 链接到 log_visitors.id

目前,我正在使用此查询:

SELECT
    log_visitors.host_id
    , MIM(log_access.timestamp) AS min_timestamp
FROM
    log_access
    INNER JOIN log_visitors
        ON (log_access.visitor = log_visitors.id)
GROUP BY log_visitors.host_id;
Run Code Online (Sandbox Code Playgroud)

获取数据库中的MIN(timestamp)每个host_id.

这是我的问题:

我还需要document使用该时间戳来获取该访问权限...我不能简单地添加log_access.document到SELECT列表中,因为它不是常量而我不按文档分组...任何想法?

mysql sql select group-by greatest-n-per-group

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

mysql通过timestamp获取最新记录而不使用子查询

在这张表中我有四列

id   state_id   state        add_time
1       10         1        1385461144
2       12         3        1385461144
3       14         2        1385461144
4       12         5        1385461264
5       10         2        1385461264
Run Code Online (Sandbox Code Playgroud)

我想通过最后一个字段获取最新记录(add_time)

结果必须是这样的

id   state_id   state        add_time
3       14         2        1385461144
4       12         5        1385461264
5       10         2        1385461264
Run Code Online (Sandbox Code Playgroud)

我发现这个问题获取最新时间戳mysql的记录 ,它使用两个选择查询(子查询).但我不想使用子查询.

有没有其他方法来获取最新记录?

mysql sql timestamp greatest-n-per-group

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

SQL返回Distinct列和distinct列的第一个日期

我有一个包含多个数据库的数据库url和一个created_at与这些数据库相关联的date()url.
我希望有类似的东西:

Select DISTINCT url, "the first date of this url"
from database
where blabala
Run Code Online (Sandbox Code Playgroud)

我的问题是当一个日期添加到选择我得到这个:

/url/sdfsd  |   2014-07-19  
/url/sdfsd  |   2014-07-20  
/url/sdfsd  |   2014-07-25  
Run Code Online (Sandbox Code Playgroud)

而我想要的只是:

/url/sdfsd  |   2014-07-19
Run Code Online (Sandbox Code Playgroud)

我意识到我过度简化了我的问题,但多亏了你们,我设法找到了解决方案

select req2.date, COUNT(DATE(req2.date)) as count
from (
    select hash_request -> 'PATH_INFO', min(DATE(created_at)) as date
        from (
            select *
            from request_statistics
            where LOWER(hash_request -> 'HTTP_USER_AGENT') LIKE '%google%'
         ) req1
    group by hash_request -> 'PATH_INFO'
     )  req2
group by req2.date
order by req2.date asc
Run Code Online (Sandbox Code Playgroud)

我很难将所有独特网址上的日期分组.现在我有,每天所有独特网址的唯一网址数量

sql postgresql aggregate-functions greatest-n-per-group

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

Oracle,按排序跳过特定键上的重复行

如何在列表排序时跳过重复记录,例如,
我有表:

EmpID   Date          Dept    OtherField
1       2017.02.03    11      1
1       2016.02.03    11      2
1       2015.02.03    13      7
1       2014.02.03    21      6
1       2013.02.03    21      12
1       2012.02.03    13      333
Run Code Online (Sandbox Code Playgroud)

我需要得到:

1       2016.02.03    11
1       2015.02.03    13
1       2013.02.03    21
1       2012.02.03    13
Run Code Online (Sandbox Code Playgroud)

sql oracle greatest-n-per-group

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