作者discavalry ()
看板Database
标题Re: [SQL ] 有关 group by 和 order by 语法
时间Wed Jan 27 16:42:42 2010
※ 引述《tabear (胖熊)》之铭言:
: 我用的是 MySQL table: info
: id mb data
: ------------------------
: 1 1 0101
: 2 25 0402
: 2 17 0402
: 2 28 0101
: select id,mb,data from info group by id order by data,mb
: 出来的结果是 我心里想的应该是
: id mb data id mb data
: ------------------------ -----------------------
: 1 1 0101 1 1 0101
: 2 25 0402 2 28 0101
: 请问要怎样 sql 可以达到我要的结果哩 ?
Use: MSSQL 2005 or 2008 皆可
(不知道以下语法使用部份和 MYSQL 是否有不同)
SELECT
info.id,
info.mb,
info.data
FROM info
LEFT OUTER JOIN
(SELECT id, MAX(data) max_Data FROM info GROUP BY id) TmpTable
/*先抓出目前要的资料当索引
(因为 GROUP BY 的 SELECT 内只能放汇总函数)*/
ON info.id=TmpTable.id AND info.mb=TmpTable.mb
/*利用抓取出之资料与原资料合并*/
WHERE TmpTable.id IS NOT NULL /*把 NULL 不符合资料剔除*/
ORDER BY TmpTable.id, Tmptable.mb -- 完成~!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.75.95