簡體   English   中英

MYSQL:從多個記錄中找出最后一個記錄,每個記錄對特定列具有相同的值

[英]MYSQL: Finding out last record from multiple records each having same value for a particular column

誰能幫我MySql數據庫查詢:

我有一張下面的數據表:

work_date   ticket no   category
------------------------------------
7/15/2013   111           a
7/15/2013   222           b
7/15/2013   333           c
7/16/2013   111           a
7/16/2013   555           e
7/16/2013   333           f
7/17/2013   111           H

我在編寫查詢時將需要幫助,該查詢將讀取所有表數據,然后創建2列,第一個票證為否,第二個列為類別。 在票證列下,它將顯示所有不同票證編號的計數,並且類別下的值應該是分配給該票證的最后一個類別。

我正在使用以下查詢

SELECT category, count(distinct(ticket_no)) 
FROM master 
group by category 
order by 2 DESC`

出現在2個或更多類別中的票被多次計數,我希望它只被計數一次,而最新的一張

預期結果:

Ticket No   Category
--------------------
111           H 
222           b 
333           f
555           e

我沒有您的示例查詢。 它是按category而不是ticket分組的,但是樣本數據是按ticket分組的。

無論如何,我認為這可以滿足您的需求:

select ticket,
       substring_index(group_concat(category order by work_date desc), ',', 1)
from master m
group by ticket;

您可以使用以下SQL查詢:

SELECT DISTINCT(ticket_no), category FROM table_name SORT BY DESC;
select * from
(select ticket_no,category from master order by work_date desc) abc
group by ticket_no;

小提琴

SELECT *
 FROM distinct t1
 WHERE NOT EXISTS (
   SELECT *
   FROM distinct t2
   WHERE t2.ticket_no= t1.ticket_no
     AND t2.work_date   > t1.work_date   
   ); 

這里work_date應該是格式化的時間戳

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM