在这里完成SQL新手。我有一个任务,我应该创建一大堆表,然后在它们之间执行某些过滤。 从图片中可以看出,这些实际上是2个不同的标题(来自较大的表格,其中包含更多这些标题),但每个标题都是书籍,音频和视频副本,因此每个不同标题有3行。
有什么方法可以根据标题扫描多行,然后为每个标题返回一行,说明它是否可用作视频和音频?因此,只要在任何3行中,“available_in_audio”或“available_in_video”中的答案为是,那么“是”将覆盖在其之前或之后扫描的任何列的“否”。
例如对于3个哈利波特和密室行,我只想要一行“Available_in_Audio”为“是”,“Available_in_Video”为“是”。
非常感谢你,对不起这个长期的问题感到抱歉!
答案 0 :(得分:0)
试试这个
SELECT Title,
CASE WHEN (MAX(CASE WHEN Available_in_Audio = 'Yes' THEN 1 ELSE 0 END)) = 1 THEN 'Yes' ELSE 'No' END) AS Available_in_Audio,
CASE WHEN (MAX(CASE WHEN Available_in_Video = 'Yes' THEN 1 ELSE 0 END)) = 1 THEN 'Yes' ELSE 'No' END) AS Available_in_Video,
FROM <YourTable>
GROUP BY TITLE