我有import hashlib
# hashlib.sha1('{salt}{pw}'.encode()).hexdigest() == {pw_hash}
hashlib.sha1('e40e1e9addc186828a5554a71527342c123456'.encode()).hexdigest() == '784517f57fbe61179960739e29d7ae925aa4fd5b'
# True
表,下面是数据
errorflag
我想输出如下数据
+-----+-----+-------+
| ID | NO | Error |
+-----+-----+-------+
| 200 | 100 | 1 |
| 201 | 100 | 0 |
| 202 | 98 | 1 |
| 203 | 98 | 1 |
| 204 | 99 | 1 |
| 205 | 87 | 1 |
| 206 | 87 | 0 |
| 207 | 90 | 1 |
+-----+-----+-------+
当数字在字段“否”中重复且错误为1和0时,我要从结果中排除。
我正在努力处理联接并拥有计数查询。
答案 0 :(得分:2)
private void Form1_Load(object sender, EventArgs e)
{
this.TopMost = true;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
}
答案 1 :(得分:2)
我不清楚要问什么。
如果我正确地认为您只希望NO
的值而没有0
的错误,那么这应该可以解决问题:
SELECT `NO`
FROM errorflag
WHERE `NO` NOT IN (
SELECT `NO`
FROM errorflag
WHERE Error = 0)
GROUP BY `NO`
输出:
NO
90
98
99
Sqlfiddle是here。
答案 2 :(得分:2)
如果使用聚合函数,也可以在单个查询中执行此操作。根据您描述的环境,Error
只能保留0或1的值。因此,您可以按NO
进行分组,并确保Error
的最小值永远不会为零。>
SELECT NO FROM TableName
GROUP BY NO
HAVING MIN(Error) <> 0
答案 3 :(得分:0)
可能是您可以检查errono count = 2和明显错误= 2
select e.* from errorflag e
left join (
select errono, count(*) num_err_no, count(distinct error) count_error
from errorflag
group by errono
having count(*) =2 and count_error = 2
) t on t.errorno = e.errorno
where t.errorno is null
答案 4 :(得分:0)
如果error
标志始终为0
或1
,则可以使用not exists
:
select ef.*
from errorflag ef
where not exists (select 1
from errorflag ef1
where ef1.no = ef.no and ef1.error <> ef.error
);
对于仅单列,则仅聚合就足够了:
select no
from errorflag ef
group by no
having count(distinct error) = 1;
答案 5 :(得分:0)
要排除存在01对的ID(否),请尝试以下操作
SELECT DISTINCT NO FROM errorflag
WHERE ID NOT IN
(SELECT e1.ID FROM errorflag e1
JOIN errorflag e2
ON (e1.Error = 0 And e2.error = 1 or e2.Error = 0 And e1.error = 1) AND e1.[No] = e2.[no]
)
每个NO最多有2个错误?
例如,对于NO 99,是否会出现错误0、1、1、1?
查看此处的更改