SELECT User_JoinDate,
COUNT(User_ID)
FROM Users WHERE `User_JoinDate`
BETWEEN '2012-11-22' AND '2012-12-06'
GROUP BY User_JoinDate
ORDER BY User_JoinDate ASC"
我正在生成要在折线图中显示的数据。不幸的是,我不知道如何让上述查询显示 0 表示没有用户可能已注册的日期。所以目前我的输出可能是这样的:
2012-11-22 - 2 2012-11-25 - 4
但我想要的是
2012-11-22 - 2 2012-11-23 - 0 2012-11-24 - 0 2012-11-25 - 4
我目前确实有一个工作版本,它将 MySQL 结果存储到一个数组中,然后 PHP 循环遍历并填充空白。这看起来很困惑,我希望通过 MySQL 有一个解决方案。我对该站点进行了很好的搜索,但很难理解其中的一些实现。有什么建议么?
最佳答案
您可以使用 MySQL 变量为您想要的所有日期构建一个自动结果集。
select
AllDaysYouWant.MyJoinDate,
count( U.User_ID ) as NumberJoined
from
( select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
( select @curDate := '2012-11-21' ) sqlvars,
Users
limit 18 ) AllDaysYouWant
LEFT JOIN Users U
on AllDaysYouWant.MyJoinDate = U.User_JoinDate
group by
AllDaysYouWant.MyJoinDate
内部查询,我只是在没有键的情况下加入 users 表,所以它只是用来循环通过 X 条记录来表示你想要的天跨度......这可能是 30、100 等等...... .. 只要一张表(在本例中为用户),就有您期望的尽可能多的记录。
那么,只有天数的结果被加入到用户表中,但这一次,基于用户的 JOIN_DATE。简单的 COUNT() 应该可以得到你想要的。
“AllDaysYouWant”是分配给内部第一部分查询的别名
( select
@curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
from
( select @curDate := '2012-11-21' ) sqlvars,
Users
limit 18 ) AllDaysYouWant
这基本上说明...从用户表(但可以是任何),给我 18 行数据(通过限制,但几乎可以是任意数量的记录,但您只需要从 11 月 22 日到 12 月 6 日,这只有 14 天,但我做了 18 天,原则上它几乎可以是任何东西。用户表上方是 (select @curDate := '2012-11-21') sqlvars。查询中包含的任何选择语句作为表源的括号必须有一个别名,因为它只是一个我将使用的变量,所以不管它的名字是什么。所以,这个查询在 11 月 21 日开始变量,并且 Select @curDate := Date_Add ...blah blah 声明取@curDate 的当前值,向其添加 1 天(现在变为 11 月 22 日)并将其存储在返回的行“MyJoinDate”中。所以现在,这个内部查询创建了你的日期表从 11 月 22 日起向前 18 天的数据,并具有别名“AllDaysYouWant”供查询的其余部分引用。
我已将您可能遇到的查询调整为 alias.field all 以进行澄清...
关于mysql - 显示之间的所有日期,即使没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13754598/
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested