2014-09-14 4 views
0

У меня есть таблица, как показано ниже.SQL Server: SELECT DISTINCT Group By Count

sample

Возможно ли, что я могу сделать вывод, что и выше?

Благодаря

+0

Похоже, что вы хотите последнюю дату для каждого идентификатора. Но что вам нужно для каждого идентификатора? Я предполагаю, что на самом деле каждый msg не будет просто msg ...? – grin0048

+0

msg ... означает просто сообщение вроде hi blabla ... – Taylern

+0

у вас есть первичный ключ в таблице? –

ответ

0

Вот MYSQL запрос, чтобы сделать

SELECT, идентификатор, дата, сообщ, COUNT (ID) AS графа FROM table_name GROUP BY ид

+0

Мой реальный запрос ВЫБРАТЬ tbl_msg.msg_id, tbl_msg.msg_sender, tbl_msg.msg_receiver, tbl_msg.msg_content, tbl_msg.msg_date, tbl_users.user_fname, tbl_users.user_lname ИЗ tbl_msg LEFT JOIN tbl_users ON tbl_msg.msg_sender = tbl_users.user_no WHERE (tbl_msg.msg_receiver = 'staff') GROUP BY tbl_msg.msg_sender ORDER BY tbl_msg.msg_date DESC – Taylern

+0

Но столбец ошибок tbl_msg.msg_id недействителен в списке выбора потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. – Taylern

0

Попробуйте следующий запрос:

SELECT t1.id, t1.date, t1.msg, t2.msg_count 
FROM table_name t1 
JOIN (SELECT max(msg_id) as mid, count(*) as msg_count FROM table_name GROUP BY id) as t2 
ON(t1.msg_id=t2.mid) 
0

Похоже, вы хотите получить последнюю дату в результирующем наборе, поэтому запрос будет выглядеть как-то, SELECT id, max (date), msg, COUNT (id) AS count FR OM table_name GROUP BY ид

0

Для SQL Server, попробуйте следующее:

SELECT id, max(date) as date, msg, count(id) AS count 
FROM table_name 
GROUP BY id, msg