0

誰でもMySqlデータベースクエリを手伝ってくれませんか:

以下のデータを含むテーブルが 1 つあります。

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

すべてのテーブル データを読み取り、1 番目のチケット番号と 2 番目のチケット番号をカテゴリとして 2 列を作成するクエリを作成する際に助けが必要です。チケット列の下には、すべての個別のチケット番号の数が表示され、カテゴリの下の値は、そのチケットに割り当てられた最後のカテゴリである必要があります。

私は次のクエリを使用しています

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

2 つ以上のカテゴリに存在するチケットが複数回カウントされています。1 回だけカウントし、それも最新のものにしたい

期待される結果:

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

4 に答える 4

0
select * from
(select ticket_no,category from master order by work_date desc) abc
group by ticket_no;

フィドル

于 2013-07-29T05:08:47.643 に答える
0

サンプルクエリがわかりません。categoryではなくでグループ化していticketますが、サンプル データはticketです。

いずれにせよ、これはあなたが望むことをすると思います:

select ticket,
       substring_index(group_concat(category order by work_date desc), ',', 1)
from master m
group by ticket;
于 2013-07-29T03:46:59.877 に答える
0

次の SQL クエリを使用できます。

SELECT DISTINCT(ticket_no), category FROM table_name SORT BY DESC;
于 2013-07-29T03:48:52.337 に答える
-1
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はフォーマットされたタイムスタンプでなければなりません

于 2015-06-30T11:21:13.433 に答える