小编rtm*_*tmc的帖子

计算具有相同关系的行

我有三张桌子.调色板,颜色和关系表palette_color.就像这个样本:

http://sqlfiddle.com/#!6/fe832/2

我想计算关系表中具有相同颜色的调色板.正如您在示例中看到的那样,我已经在做了.但我相信我的方法效率不高.运行大约需要2秒钟.

我正在使用SQL Server.

这是我计算行数的地方:

(
SELECT count(DISTINCT palette_id) as total FROM palette_color COLOR
    WHERE NOT EXISTS
        (( (SELECT color_id FROM palette_color WHERE palette_id = PALETTE.id) EXCEPT (SELECT color_id FROM palette_color WHERE palette_id = COLOR.palette_id) )
        UNION ALL
        ( (SELECT color_id FROM palette_color WHERE palette_id = COLOR.palette_id) EXCEPT (SELECT color_id FROM palette_color WHERE palette_id = PALETTE.id) ))
 ) as total
Run Code Online (Sandbox Code Playgroud)

在where子句中,我确保只有第一个调色板出现在结果上

WHERE  id =
(
    SELECT MIN(palette_id) FROM palette_color COLOR
        WHERE NOT EXISTS
            (( (SELECT color_id FROM palette_color WHERE …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

8
推荐指数
1
解决办法
244
查看次数

标签 统计

sql ×1

sql-server ×1