比方说,我有一个名为Color_Size_Rel的表,看起来像这样
Color_Size_ID Color Size
1 Blue L
2 Blue M
3 Green L
4 Purple L
5 Pink XL
6 White S
7 Blue L
要提取相同大小的颜色/颜色数的查询是什么?预期的结果集如下:
Blue
Green
Purple
我尝试了以下方法都没有用(我真的很困,不知道该怎么做):
select color
from color_size_rel
where size = size;
谢谢。
答案 0 :(得分:1)
您可以尝试使用<MuiThemeProvider theme={innerTheme}>
<ListItems itemsList={secondItem}/>
</MuiThemeProvider>
子查询来实现。
查询1 :
exists
Results :
SELECT DISTINCT t1.color
FROM Color_Size_Rel t1
WHERE exists (
SELECT 1
FROM Color_Size_Rel tt
WHERE t1.Size = tt.Size
HAVING COUNT(*) > 1
)
答案 1 :(得分:1)
这应该可以解决问题:
WITH color_size_rel AS (SELECT 1 color_size_id, 'Blue' color, 'L' "SIZE" FROM dual UNION ALL
SELECT 2 color_size_id, 'Blue' color, 'M' "SIZE" FROM dual UNION ALL
SELECT 3 color_size_id, 'Green' color, 'L' "SIZE" FROM dual UNION ALL
SELECT 4 color_size_id, 'Purple' color, 'L' "SIZE" FROM dual UNION ALL
SELECT 5 color_size_id, 'Pink' color, 'XL' "SIZE" FROM dual UNION ALL
SELECT 6 color_size_id, 'White' color, 'S' "SIZE" FROM dual UNION ALL
SELECT 6 color_size_id, 'Orange' color, 'S' "SIZE" FROM dual UNION ALL
SELECT 7 color_size_id, 'Blue' color, 'L' "SIZE" FROM dual)
SELECT "SIZE", color
FROM (SELECT DISTINCT "SIZE",
color,
COUNT(DISTINCT color) OVER (PARTITION BY "SIZE") cnt
FROM color_size_rel)
WHERE cnt > 1
ORDER BY "SIZE", color;
SIZE COLOR
---- ------
L Blue
L Green
L Purple
S Orange
S White
(我在尺寸“ S”中添加了一种额外的颜色,以在有多种颜色且一种以上的颜色时显示输出。)
这将找到每种尺寸的不同颜色的计数,然后区分结果集,因此,如果每种尺寸中存在重复的颜色,则仅报告一种。最后,我们过滤结果以显示计数大于1的尺寸。
请不要使用size
作为列名-这是一个保留字,因此为什么每次引用它时都必须使用双引号。
答案 2 :(得分:0)
从colour_size_rel中选择不同的颜色,其中size = size