合计投票结果

2023-12-24

我有一张选票,每个选民获得 3 票,从 10 名不同的候选人中进行选择。投票 1 得 3 分,投票 2 得 2 分,投票 3 得 1 分。

我有以下 SQL 查询来计算每次投票获得的总分(因此投票 1、2 和 3 的结果是分开的)。

我需要做的是将所有这些结果放在一个表中,但我不太确定从哪里开始。

SELECT cn.cand_name, (count(vote_1) * 3) as vote_1 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_1 = cn.cand_number GROUP BY cand_name;

SELECT cn.cand_name, (count(vote_2) * 2) as vote_2 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_2 = cn.cand_number GROUP BY cand_name;

SELECT cn.cand_name, (count(vote_3) * 1) as vote_3 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_3 = cn.cand_number GROUP BY cand_name;

我有以下结果表:

Voter_number    Vote_1     Vote2      Vote3
123             cand_1     cand_3     cand_2
456             cand_2     cand_1     cand_3
789             cand_2     cand_3     cand_1

以及以下候选姓名表:

cand_number     cand_name
cand_1          Dave
cand_2          Sarah
cand_3          Nigel

所以我正在寻找的结果将类似于:

Candidate       Votes
Dave            6
Sarah           7
Nigel           5

SELECT
    cn.cand_name, 
    count(cv1.vote_1) * 3 as vote_1, 
    count(cv2.vote_2) * 2 as vote_2, 
    count(cv3.vote_3) as vote_3
FROM
    candidate_names cn
    LEFT JOIN
    candidate_votes cv1 ON cv1.vote_1 = cn.cand_number
    LEFT JOIN
    candidate_votes cv2 ON cv2.vote_2 = cn.cand_number
    LEFT JOIN
    candidate_votes cv3 ON cv3.vote_3 = cn.cand_number
GROUP BY cn.cand_name;

这也允许您添加所有投票

(count(cv1.vote_1) * 3) +
    (count(cv2.vote_2) * 2) +
    count(cv3.vote_3) as totalvotes

编辑:行被 JOIN 相乘,这就是 cand2 和 cand3 错误的原因

SELECT
    cn.cand_name, 
    SUM(CASE WHEN cv.vote_1 = cn.cand_number THEN 3 ELSE 0 END) as vote_1, 
    SUM(CASE WHEN cv.vote_2 = cn.cand_number THEN 2 ELSE 0 END) as vote_2, 
    SUM(CASE WHEN cv.vote_3 = cn.cand_number THEN 1 ELSE 0 END) as vote_3
FROM
    candidate_names cn
    JOIN
    candidate_votes cv ON cn.cand_number IN (cv.vote_1, cv.vote_2, cv.vote_3)
GROUP BY cn.cand_name;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合计投票结果 的相关文章

随机推荐

  • ASP.NET 和 C# 页面查看计数器:使用数据库

    我正在开发一个类似于 stackoverflow com 概念的项目 会有很多问题 我希望每个问题都有一个页面浏览计数器 我觉得最好的方法是使用数据库 因为问题的数量会很大 而且会随着时间的推移而增加 如果我只创建一个表 那就很容易了问题
  • 虚拟调度实施细节

    首先 我想明确的是我确实明白 C 标准中没有 vtable 和 vptrs 的概念 然而 我认为几乎所有实现都以几乎相同的方式实现虚拟调度机制 如果我错了 请纠正我 但这不是主要问题 另外 我相信我知道虚拟函数是如何工作的 也就是说 我总是
  • Visual Studio Code - C# 控制台应用程序

    可能是重复或非常基本的问题 我最近在 Windows 上下载了 Visual Studio Code 并尝试打开现有的 Hello World 控制台应用程序 我已经下载了相同的 C 扩展 您能否指出我可以在其中找到配置 VS Code 的
  • JQuery 改变表格单元格的内容

    好的 这是一个令人尴尬地简单的问题 为什么下面的 jQuery 示例不起作用 显然应该将表中的 a 更改为 hello HTML 代码 table tr td a td td b td tr table JavaScript JQuery
  • 如何在 .net 中以 4-2-2 格式保存高质量的 jpeg?

    当我使用 bitmap save 保存 jpg 文件时 当我指定编码器和质量时 它会保存为 jpeg 4 1 1 但当我不指定编码器和质量时 它会保存为 4 2 2 我想将其保存为 4 2 2 其质量比默认值更高 使用 bitmap sav
  • /usr/local/bin 和 /usr/local/share 的权限问题

    我在新的 MacBook 上使用 OS X Yosemite 刚刚安装了 Homebrew 和一些必需的软件包 最近搬到了这台新计算机 我注意到偶尔当我安装新的brew 软件包时出现链接错误 由于某种原因 权限 usr local bin
  • JS Cookie 设置在 2 个位置,不会覆盖第一个设置

    我在两个不同的页面上使用相同的脚本来设置相同的 cookie 我的假设是 即使两个页面的路径 略有不同 它们也会简单地覆盖 cookie 而不是复制其中的条目 我的第一页的路径是 example com classifieds busine
  • Java 内存使用情况

    我无法理解 Java 内存的使用情况 我有一个应用程序 其最大内存大小设置为 256M 然而 在某个时间点 我可以看到根据任务管理器 它占用了 700MB 不用说 当发生这种情况时 所有其余的应用程序都会有点反应迟钝 因为它们可能已被换出
  • 为什么这个 SVG 的宽度没有用 ng-attr-width 设置?

    我有一个非常简单的网页来尝试隔离我不理解的 ng 绑定 div div
  • 如何保存完整的网页

    有没有办法使用WebDriver保存完整的网页 目前我执行 getPageSource 然后将所有内容放入 html 本地文件中 但保存的页面形状不佳 奇怪的字符 没有图像 所有元素向下偏移 请参阅下面我使用的代码 Test public
  • 是否可以将我们的对称算法添加到 OpenSSL 中?

    我想将我的对称加密算法添加到 OpenSSL 中 并将其用作 SSL 协议中的对称算法 我需要使用测试它s client 所以我需要一种方式来表示 OpenSSL 将其用作对称算法 OpenSSL 使用 RSA 进行密钥交换阶段就足够了 我
  • 为动态创建的面板添加鼠标单击事件[重复]

    这个问题在这里已经有答案了 您好 我正在用 C 开发一个 Windows 窗体应用程序 我有一个 FlowLayoutPanel 里面有一个动态面板列表 如何为 FlowLayoutPanel 内的面板添加鼠标单击事件 谢谢这个 但是我可以
  • 在 SQL Server 2016 中将 JSON 转换为表

    我正在开发一个 Web 项目 其中客户端应用程序通过 JSON 与数据库进行通信 最初的实现是在 SQL Server 2012 中进行的 不支持 JSON 因此我们实现了一个处理解析的存储函数 现在我们正在转向 2016 支持 JSON
  • 解组时 JAXB 可以获得 XML 注释吗?

    我正在解析一个XML与 JAXB 但XML最后有一条评论 我想解析它来存储它 Xml
  • 完全独立于脚本运行命令[重复]

    这个问题在这里已经有答案了 我最近遇到了一些情况 我想完全独立地启动命令 并且在与脚本不同的进程中 相当于将其输入终端 或者更具体地说 将命令写入 sh 或 desktop 并双击它 我的要求是 我可以关闭 python 窗口而不关闭应用程
  • Eclipse 无法创建就地编辑器

    我有一个故障排除问题 我的 Eclipse 不希望在包编辑器中打开类 Error what i m having 但是 文件是通过 打开方式 gt 文本编辑器 打开的 这看起来有点像魅力 请帮助 我在我的中遇到了这个问题filename x
  • 允许用户使用 cefsharp 浏览器通过鼠标滚轮进行缩放

    我正在运行 cefsharp 75 我想使用 ctrl 键和鼠标滚轮打开缩放功能 我的事件处理程序从未被触发 如果按住 ctrl 并使用鼠标 屏幕将不会移动 所以控件内部有一些东西并处理事件 我只是缺少一个设置吗 我添加了鼠标和键盘缩放 在
  • Applescript 问题 - 将曲目添加到播放列表

    说实话 我什至都不好意思问这个问题 我有一个 Applescript 它应该构建一堆完整专辑的播放列表 除了将曲目实际添加到播放列表之外 一切正常 这是相关代码 repeat with theAlbum in randAlbums set
  • 动态表单,带或不带多部分/表单数据

    我正在用java设计一个简单的CRUD框架 在我的HTML页面中 我有一个动态表单 2个带有用于创建和更新文件上传的多部分 1个没有文件上传和用于删除的多部分 服务器端 请求调制器使用以下命令检查所有参数request getParamet
  • 合计投票结果

    我有一张选票 每个选民获得 3 票 从 10 名不同的候选人中进行选择 投票 1 得 3 分 投票 2 得 2 分 投票 3 得 1 分 我有以下 SQL 查询来计算每次投票获得的总分 因此投票 1 2 和 3 的结果是分开的 我需要做的是