我在表中有以下数据。我想返回的是最新添加的它们,并且我只想返回一个示例音轨(可以有多个具有相同名称的音轨),但是,如果音轨具有伴奏声(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


因此,我需要按Artist&Title将它们分组,这很容易,但是,该分组需要先由BVox降序排列。

我不能简单地搜索BVox ='Yes'的所有内容,因为Olly Murs曲目没有BVox,但我希望它显示为最新版本。

我正在使用以下内容,但我认为它们先进行分组然后进行排序,这不好,因为它显示了ADELE曲目,但带有BVox ='No'

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


这可能吗?

最佳答案

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


SAMPLE FIDDLE

09-30 17:18