在GROUP BY mysql之前重新排序

时间:2013-09-03 07:49:29

标签: mysql sql

我在表格中有以下数据。我想先返回最新添加的内容,我想只返回一个示例曲目(可以有多个同名曲目)但是,如果曲目有后备人声(BVox),则必须先返回。

示例数据:

Track_id      Artist      Title         BVox
9             ADELE       SKYFALL       NO
8             ADELE       SKYFALL       YES
7             AVICII      WAKE ME UP    YES
6             AVICII      WAKE ME UP    NO
5             OLLY MURS   DEAR DARLIN'  NO

我想回来:

Track_id      Artist      Title         BVox
8             ADELE       SKYFALL       YES
7             AVICII      WAKE ME UP    YES
5             OLLY MURS   DEAR DARLIN'  NO

所以,我需要将它们分组为艺术家& 标题,这很容易,,该群体需要先由BVox下降。

我不能简单地搜索所有 BVox ='是' 的地方,因为Olly Murs轨道没有BVox但我希望它显示为最新版本。

我正在使用以下内容,但我认为它们首先被分组,然后被排序,这是不好的,因为它然后显示ADELE轨道但是 BVox =&#39; No&#39; < / p>

SELECT
  *,
  COUNT(*) How_many_tot
FROM
  tracks
GROUP BY
  artist, Title
ORDER BY
  track_id desc limit 50

这可能吗?

1 个答案:

答案 0 :(得分:0)

SELECT * FROM
(SELECT  * FROM  Table1
  ORDER BY
  field(BVOX,'YES') desc, track_id desc) abc
GROUP BY artist, Title

<强> SAMPLE FIDDLE