- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个查询,根据选民在 votes
表(700 万条记录)中的事件,从 voters
表(100 万条记录)中列出选民。标准如下:
大选 (GE) 每年只举行一次,并且只有 2004 年或之后的大选才应计算在内。
在前面提到的 GE 中,只有 10% 到 50% 的选民投票的才应该计算在内。
一些不太重要的信息:
架构无法更改。它以固定宽度的文本文件形式呈现给我们,通过脚本上传,并用于其他目的。
只有当前的活跃选民名单和他们的投票历史是可用的。在我下面的查询中,我包含了一个方程式,每当年份减少 1 时,上限阈值就会减少 10,000 名选民。它并不完美,但它似乎在保留有效 GE 的同时过滤掉不需要的 GE。
例如,如果 2005 年、2006 年、2007 年、2009 年、2010 年和 2011 年有 100,000 到 500,000 名选民投票,那么我只想列出那些年投票的选民。
架构如下:
CREATE TABLE IF NOT EXISTS `voters` (
`CountyEMSID` varchar(9) COLLATE utf8_unicode_ci NOT NULL,
`LastName` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`FirstName` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`MiddleInitial` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
`NameSuffix` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
`HouseNumber` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`HouseNumberSuffix` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`ApartmentNumber` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
`StreetName` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`City` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
`Zip` varchar(5) COLLATE utf8_unicode_ci NOT NULL,
`ZipCode4` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
`MailingAddress1` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`MailingAddress2` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`MailingAddress3` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`MailingAddress4` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`DOBY` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
`DOBM` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`DOBD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`Gender` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
`Party` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
`Other` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`ED` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
`AD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`CD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`CO` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`SD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`CC` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`JD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`RegY` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
`RegM` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`RegD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`Status` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`VoterType` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
`StatusChangeY` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
`StatusChangeM` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`StatusChangeD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`LastVoted` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
`Telephone` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
`County` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
KEY `districts` (`CountyEMSID`,`ED`,`AD`,`CD`,`CO`,`SD`,`CC`,`JD`),
KEY `vsn` (`CountyEMSID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `votes` (
`CountyEMSID` varchar(9) COLLATE utf8_unicode_ci NOT NULL,
`County` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`AD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`ED` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
`Party` varchar(3) COLLATE utf8_unicode_ci NOT NULL,
`ElectionDateY` varchar(4) COLLATE utf8_unicode_ci NOT NULL,
`ElectionDateM` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`ElectionDateD` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`ElectionType` varchar(2) COLLATE utf8_unicode_ci NOT NULL,
`VoterType` varchar(1) COLLATE utf8_unicode_ci NOT NULL,
KEY `CountyEMSID` (`CountyEMSID`),
KEY `perfect` (`CountyEMSID`,`ElectionDateY`,`ElectionType`),
KEY `CountyEMSID_2` (`CountyEMSID`,`ElectionDateY`,`ElectionType`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
到目前为止,我有以下查询,它应该只列出 votes
表中选民的唯一 ID (CountyEMSID)。它在 mysqlfiddle 中工作,但在 phpmyadmin 中挂起。
SELECT DISTINCT CountyEMSID
FROM `votes`
WHERE ElectionDateY IN
(
SELECT ElectionDateY
FROM `votes`
WHERE ElectionType = 'GE'
AND ElectionDateY >= 2004
GROUP BY ElectionDateY
HAVING COUNT(*) < ((0.5 * (SELECT COUNT(*) FROM `voters`)) - ((YEAR(CURRENT_TIMESTAMP()) - ElectionDateY) * 10000))
AND COUNT(*) > (0.1 * (SELECT COUNT(*) FROM `voters`))
)
如果您能帮助优化此查询并对其进行修改,使其从 votes
表中返回所有相应的选民信息,我将不胜感激。
最佳答案
MySQL 对 in
子句的优化很差。基本上,它为处理的每一行重新运行子查询。您应该将计算移动到 from
子句中。这是我的尝试:
select distinct v.*
from votes v join
(select electiondatey, count(*) as NumYVotes
from votes v
group by electiondatey
) ey
on v.electiondatey = ev.electiondatey cross join
(select count(*) as numvoters from voters) as const
where (NumYVotes < 0.5 * numvoters - year(now()) - ElectionDateY * 10000) and
(NumYVotes > 0.1 * numvoters)
注意:我还没有测试过,所以它可能有语法错误。
关于mysql - 尝试优化通过投票事件列出选民的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551547/
我在网站上实现了一个简单的向上/向下投票系统,并且我会跟踪个人投票以及投票时间和唯一用户 ID(散列 IP)。 我的问题不是如何计算投票的百分比或总和 - 但更多的是,根据投票确定好分数的好算法是什么
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
我有一个 Rails 应用程序,其中我的 Posts 模型有评论并且评论是可投票的。我正在使用 acts_as_votable。 我目前正在对评论进行投票。现在我正在尝试实现一些 javascript
几天前我刚刚开始使用 SQLAlchemy,现在我遇到了一个问题,我希望任何人都可以在我失去所有头发之前弄清楚。 当我运行单元测试时,请参阅下面的代码片段,只有序列中的第一个测试通过。测试 testP
有没有办法以编程方式访问Outlook电子邮件的“投票”功能?我希望能够发送启用了投票的电子邮件,并获得答复(最好是不进行投票)。 谢谢! 最佳答案 听起来您想使用Outlook对象模型中的MailI
我正在使用这个JQuery Ajax Voting system guide作为一个粗略的引用,但我对此的安全性有点担心。现在这个指南基本上存储了一些东西的ID和它的投票统计数据。 我想提出类似的想法
我正在使用 disqus 2012。我已经在我的网站上实现了评级系统,所以希望删除评论右上角的星号,因为它有点困惑。当我将鼠标悬停在上面时,它会显示“投票”。无论如何要从我的评论中删除它? 最佳答案
我有一个 PHP 系统,允许用户以 1 - 5 的范围对照片进行投票,我想要做的是突出显示两个人给彼此相同的投票/分数的地方。我目前无法弄清楚我的 PHP 函数的 SQL。 数据库看起来像这样 id,
tasker 等应用如何捕获上下文。假设我想捕捉当 wifi 打开时做某事的上下文。是否可以为 isWifiEnabled() 附加回调?或者在没有轮询的情况下启用 wifi 时执行处理程序。示例代码
Python(以及 StackOverflow)新手。试图弄清楚如何让它正确执行。虽然程序本身执行得很好,但我希望它没有额外的步骤。我的意思是,如果第一个语句失败,我想终止并打印与 else 语句相关
有什么方法可以制作一个安全的 php 投票系统吗?我会尝试存储 IP 地址,但有动态 IP。聪明的人可以重新连接并投票两次。 Cookie 也很容易破解。 最佳答案 任何跟踪用户的方式:cookies
我正在处理 Django tutorials ,现在我正在创建一个民意调查。 在我想创建选择之前,下面的代码工作正常,但出于某种原因,我总是收到此错误消息: line 22, in __unicode
我正在实现一些需要公共(public)轮询才能从服务器获取新值的对话框。我正在尝试使用 p:poll,但不幸的是我无法阻止它。我在用户单击一个对话框中的按钮时开始投票,并在用户单击子对话框中的按钮时尝
嘿,我需要手动将投票系统实现到模型中。 我从 Mike DeSimone 那里得到了巨大的帮助,首先完成了这项工作,但我需要扩展他的工作。 这是我当前的代码 查看 def show_game(requ
我正在实现一个投票系统,当我想使用 AJAX 更新投票数时,我会刷新所有出版物的计数。但我不能只刷新一份出版物。查看我的 HTML: @foreach($publications as $public
目前我正在投票 SCM H H(0-8) * * 5 我的意思是:周五午夜到早上 8 点之间进行民意调查。 我想要的是每隔一个星期五进行一次投票。 最佳答案 接受的答案在 Jenkins 中不起作用:
function vote() { = 1) { ?> alert("
我有一个大数据文件,该文件会不断地(同步地)被现场的测量设备附加到该文件中。我需要将最新的数据同步传送到这个文件到在线仪表板。我说等时是因为“仪表板”不关心显示数据流(高延迟情况),它只关心发送给它的
我正在学习 djangoproject.com 教程。我使用 pyCharm 设置了一个虚拟项目。在我的终端命令行上,我 cd 进入包含 manage.py 的文件夹,然后运行该行。python ma
我有一个正在尝试修改的 php/mysql 轮询。 如果您已经投票,它会设置一个唯一的 cookie,如果设置了 cookie,它会阻止您在同一个民意调查中投票两次。如果已设置,则您只能看到结果。 我
我是一名优秀的程序员,十分优秀!