考虑下面的数据存储在临时表中。如何获得没有状态记录具有“AC”值的所有ID /州/组合?
结果应该产生
ID State Group
2 FL LI
3 FL VA
5 FL LI
答案 0 :(得分:1)
有几种查询模式可以实现这一结果。
使用GROUP BY
操作的其中一种模式的示例,其中包含条件的聚合(以排除分组中具有status
值为'AC'
的行的分组 SELECT t.id
, t.state
, t.group
FROM mytable t
GROUP
BY t.id
, t.state
, t.group
HAVING MAX(CASE WHEN t.status='AC' THEN 1 ELSE 0 END) = 0
)
SELECT t.id
, t.state
, t.group
FROM mytable t
LEFT
JOIN mytable s
ON s.id = t.id
AND s.state = t.state
AND s.group = t.group
AND s.status = 'AC'
WHERE s.id IS NULL
GROUP
BY t.id
, t.state
, t.group
另一种模式的示例,使用反连接:
%Time%
答案 1 :(得分:1)
byte graph[][] = {
{ 0, 0, 0, 1, 0, 0, 0, 0 },
{ 0, 0, 1, 1, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 1, 1, 1, 0 },
{ 1, 1, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 1, 0, 0, 0, 0, 0 } };