微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

比较 2 个 Postgres 布尔行/实体

如何解决比较 2 个 Postgres 布尔行/实体

我正在尝试比较代表不同设置的两行布尔值。

第 1 行是轮班所需的设置。 第 2 行是特定候选人工作过的设置。

我想知道有多少候选人没有满足轮班所需的技能。 即如果第 1 行等于 true 且第 2 行不等于 true。

基本答案可以是代表上述内容的单个数字。指示计入哪些列的奖励积分。

生成下表示例的 sql 是:

SELECT
    c.id as cId,s.id as sId,sm.*
FROM
    aws.settings_matrices AS sm
    LEFT JOIN aws.shifts AS s ON s.settings_matrix_id = sm.id
    LEFT JOIN aws.candidates AS c ON c.settings_matrix_id = sm.id
WHERE
    s.id = '327fff17-3ef6-4589-7459-8deafe5d489a'
    OR c.id = '643dc500-46ah-400b-b456-018bbbee9593'
cid sid id general_ward 健康安全 nursing_home care_home 心理健康 learning_disab 辅助生活 休息 急性 姑息治疗 sensory_impair 儿科 surgical_gen surgical_orth accident_emer 助产士 covid_ward icu_itu hdu ent 老人 泌尿科 created_at modified_at created_by modified_by
NULL 327fff17-3ef6-4589-7459-8deafe5d489a 643dc500-46ah-400b-b456-018bbbee9593 f f f f f f f f t t f f f f f f f f f f f f 2021-07-21 14:29:28.484948 2021-07-22 08:34:47.197 example@example.com
91d7e3dc-fce0-446f-8g7b-9c271cce2592 NULL d044298c-6f28-43d9-892j-8cb22e3ea89c t t t NULL f f t t t NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 2021-07-16 12:04:47.953 NULL example@example.com NULL

解决方法

我不确定您想用哪种语言运行比较和计数,但由于您只想计算第二行中的 True 值,如果第一行中的相应值也是 {{ 1}},您不能只计算两行并显示差异。

逻辑应该是这样的:

如果你不需要硬打字

True

如果你必须硬打字,很遗憾,你可能需要走很长的路

var requiredThings = ["thing1","thing2","etc"];
int missingThins = 0;
foreach (var thing in requiredThings)
  if (thing1[thing] && thing2[thing])
    missingThings++;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。