- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个名为 number
的表:
number_id | number_name
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
6 ffff
(它只包含 6 个条目)
我还有一个名为 texts
的表:
text_id | start_time | number_id | text_content
1 some date1 | 2 | blabla1
2 some date2 | 1 | blabla2
3 some date3 | 2 | blabla3
4 some date4 | 3 | blabla4
5 some date5 | 4 | blabla5
6 some date6 | 6 | blabla6
etc.
(它包含很多条目)。
现在,当我进行这样的查询时:
SELECT
*
FROM
(SELECT
DATEDIFF(now(),
start_time) AS days_ago,
number_id,
COUNT(text_id) AS num_texts
FROM
TEXTS
WHERE
start_time BETWEEN DATE_SUB(NOW(), INTERVAL 100 DAY) AND NOW()
GROUP BY
DATE(start_time),
number_id) AS temp
它向我返回过去 100 天中每个地点每天的短信数量,编号为 number_id。结果如下所示:
当我将它编码为 json 时,我得到:
[{"days_ago":"19","number_id":"1","num_texts":"179"},
{"days_ago":"19","number_id":"5","num_texts":"1"},
{"days_ago":"18","number_id":"1","num_texts":"61"},
{"days_ago":"18","number_id":"2","num_texts":"1"},
{"days_ago":"18","number_id":"5","num_texts":"1"},
{"days_ago":"18","number_id":"6","num_texts":"3"},
{"days_ago":"17","number_id":"3","num_texts":"1"},
{"days_ago":"8","number_id":"1","num_texts":"2"},
{"days_ago":"8","number_id":"2","num_texts":"2"},
{"days_ago":"7","number_id":"4","num_texts":"1"},
我想编写一个不同的查询,或者更改现有的查询。有没有一种方法可以编写一个查询,以下列方式向我返回这些数据:
[{"days_ago": "7", "number_id" : "1", "num_texts" : "18", "number_id" : "2", "num_texts" : "12", "number_id" : "3", "num_texts" : "12" , ... , "number_id" : "6", "num_texts" : "1"},
{"days_ago": "6", "number_id" : "1", "num_texts" : "18", "number_id" : "2", "num_texts" : "12", "number_id" : "3", "num_texts" : "12" , ... , "number_id" : "6", "num_texts" : "1"},
{"days_ago": "5", "number_id" : "1", "num_texts" : "18", "number_id" : "2", "num_texts" : "12", "number_id" : "3", "num_texts" : "12" , ... , "number_id" : "6", "num_texts" : "1"},
{"days_ago": "4", "number_id" : "1", "num_texts" : "18", "number_id" : "2", "num_texts" : "12", "number_id" : "3", "num_texts" : "12" , ... , "number_id" : "6", "num_texts" : "1"},
{"days_ago": "3", "number_id" : "1", "num_texts" : "18", "number_id" : "2", "num_texts" : "12", "number_id" : "3", "num_texts" : "12" , ... , "number_id" : "6", "num_texts" : "1"},
{"days_ago": "2", "number_id" : "1", "num_texts" : "18", "number_id" : "2", "num_texts" : "12", "number_id" : "3", "num_texts" : "12" , ... , "number_id" : "6", "num_texts" : "1"},
{"days_ago": "1", "number_id" : "1", "num_texts" : "18", "number_id" : "2", "num_texts" : "12", "number_id" : "3", "num_texts" : "12" , ... , "number_id" : "6", "num_texts" : "1"}]
基本上每一行都应该包含关于 days_ago
的信息以及 6 个 number_id
中每一个的值 num_texts
。我需要将此查询限制为仅过去 7 天,因此我知道我可以在此处修改它:
BETWEEN DATE_SUB(NOW(), INTERVAL 100 DAY) AND NOW()
并将 100 更改为 7,但是否有可能以某种方式获取此特定格式的其余信息?
还有一件事 - 我从 php 调用这个查询,所以如果在 php 中以某种方式更容易解析它并作为 json 返回,那也是一个选项。
非常感谢任何提示家伙!
=========编辑:
正如@AlexBlex 指出的那样——我提出的 json 结构可能无效,因为多次使用相同的键名。为了帮助您更好地理解我的问题 - http://thevectorlab.net/flatlab/morris.html这是 morris js 图表的示例。在该示例中,我想生成名为 Quarterly Apple iOS device unit sales
的图表。在水平线上,我需要日期(几天前
),在垂直线上,我需要 num_texts。我想要 6 行,每行代表不同的 number_id。
最佳答案
假设您的 number
具有这 6 个永远不会改变 的固定值,可以通过链接 texts
的 6 个副本来实现表(或创建 6 个 View )。
但是如果你在 php 中通过跟踪 days_ago
的时间来做它可能会更干净更改并添加新的 JSON 记录。您还必须确保没有 number_id
被跳过并为 num_texts
添加零值对于任何跳过的。
添加,示例伪代码:
$days_ago=0;
while ([read_records]) {
if (record['days_ago']!=$days_ago {
$days_ago!=0 [Close line]
$days_ago=record['days_ago'];
[Add new line]
[Add days_ago field] }
[Add number_id and num_texts fields]
}
[Close line]
第二次编辑,带 View 的解决方案:
如果view_1
是我在下面描述的 View 和view_2
number_id
的 View 2
,您可以像这样链接它们:
SELECT view_1.days_ago, view_1.num_texts AS num_texts1, view_2.num_texts AS num_texts2
FROM view_1 INNER JOIN view_2 ON view_1.days_ago=view_2.days_ago
只有当您拥有所有 number_id
的条目时,此 willo 才能正常工作对于每个 days_ago
, 否则你将不得不创建一个只有 days_ago
的 View 并使用左/右连接加入 number_id
意见。
关于php - 我如何重写我的 sql 查询,以便它以特定格式返回值(使用 mysql 或 php)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443057/
我的问题:非常具体。我正在尝试想出解析以下文本的最简单方法: ^^domain=domain_value^^version=version_value^^account_type=account_ty
好吧,这就是我的困境: 我正在为 Reddit 子版 block 开发常见问题解答机器人。我在 bool 逻辑方面遇到了麻烦,需要一双更有经验的眼睛(这是我在 Python 中的第一次冒险)。现在,该
它首先遍历所有 y 值,然后遍历所有 x 值。我需要 X 和 y 同时改变。 For x = 3 To lr + 1 For y = 2 To lr anyl.Cells(x, 1)
假设我有一个包含 2 列的 Excel 表格:单元格 A1 到 A10 中的日期和 B1 到 B10 中的值。 我想对五月日期的所有值求和。我有3种可能性: {=SUM((MONTH(A1:A10)=
如何转换 Z-score来自 Z-distribution (standard normal distribution, Gaussian distribution)到 p-value ?我还没有找到
我正在重写一些 Javascript 代码以在 Excel VBA 中工作。由于在这个网站上搜索,我已经设法翻译了几乎所有的 Javascript 代码!但是,有些代码我无法准确理解它在做什么。这是一
我遇到过包含日期格式的时间戳日期的情况。然后我想构建一个图表,显示“点击”项目的数量“每天”, //array declaration $array1 = array("Date" => 0); $a
我是scala的新手! 我的问题是,是否有包含成员的案例类 myItem:Option[String] 当我构造类时,我需要将字符串内容包装在: Option("some string") 要么 So
我正在用 PHP 创建一个登录系统。我需要用户使用他或她的用户名或电子邮件或电话号码登录然后使用密码。因为我知道在 Java 中我们会像 email==user^ username == user 这
我在 C++ 项目上使用 sqlite,但是当我在具有文本值的列上使用 WHERE 时出现问题 我创建了一个 sqlite 数据库: CREATE TABLE User( id INTEGER
当构造函数是显式时,它不用于隐式转换。在给定的代码片段中,构造函数被标记为 explicit。那为什么在 foo obj1(10.25); 情况下它可以工作,而在 foo obj2=10.25; 情况
我知道这是一个主观问题,所以如果需要关闭它,我深表歉意,但我觉得它经常出现,让我想知道是否普遍偏爱一种形式而不是另一种形式。 显然,最好的答案是“重构代码,这样你就不需要测试是否存在错误”,但有时没有
这两个 jQuery 选择器有什么区别? 以下是来自 w3schools.com 的定义: [attribute~=value] 选择器选择带有特定属性,其值包含特定字符串。 [attribute*=
为什么我们需要CSS [attribute|=value] Selector根本当 CSS3 [attribute*=value] Selector基本上完成相同的事情,浏览器兼容性几乎相似?是否存在
我正在解决 regx 问题。我已经有一个像这样的 regx [0-9]*([.][0-9]{2})。这是 amont 格式验证。现在,通过此验证,我想包括不应提供 0 金额。比如 10 是有效的,但
我正在研究计算机科学 A 考试的样题,但无法弄清楚为什么以下问题的正确答案是正确的。 考虑以下方法。 public static void mystery(List nums) { for (
好的,我正在编写一个 Perl 程序,它有一个我收集的值的哈希值(完全在一个完全独立的程序中)并提供给这个 Perl 脚本。这个散列是 (string,string) 的散列。 我想通过 3 种方式对
我有一个表数据如下,来自不同的表。仅当第三列具有值“债务”并且第一列(日期)具有最大值时,我才想从第四列中获取最大值。最终值基于 MAX(DATE) 而不是 MAX(PRICE)。所以用简单的语言来说
我有一个奇怪的情况,只有错误状态保存到数据库中。当“状态”应该为 true 时,我的查询仍然执行 false。 我有具有此功能的 Controller public function change_a
我有一个交易表(针对所需列进行了简化): id client_id value 1 1 200 2 2 150 3 1
我是一名优秀的程序员,十分优秀!