我在MySQL上运行此查询
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
Run Code Online (Sandbox Code Playgroud)
并且它给出了这个错误:
每个派生表都必须有自己的别名.
是什么导致了这个错误?
我需要一位SQL大师来帮助我加快查询速度.
我有2个表,数量和价格.数量记录2个时间戳之间的数量值,相隔15分钟.对于给定的价格类型,价格记录给定时间戳的价格,并且每5分钟有一个价格5记录.
我需要2个计算两个时间戳之间每个时期的总价格,例如小时或天.这是通过每个时期的(数量乘以15分钟数量窗口中3个价格的平均值)的总和来计算的.
例如,假设我想看1天内每小时的总价.结果集中每行的总价格值是该小时内四个15分钟时段中每个时段的总价格总和.并且每15分钟期间的总价格是通过将该期间的数量值乘以该数量期间的3个价格(每5分钟一个)的平均值来计算的.
这是我正在使用的查询,结果如下:
SELECT
MIN( `quantities`.`start_timestamp` ) AS `start`,
MAX( `quantities`.`end_timestamp` ) AS `end`,
SUM( `quantities`.`quantity` * (
SELECT AVG( `prices`.`price` )
FROM `prices`
WHERE `prices`.`timestamp` >= `quantities`.`start_timestamp`
AND `prices`.`timestamp` < `quantities`.`end_timestamp`
AND `prices`.`type_id` = 1
) ) AS total
FROM `quantities`
WHERE `quantities`.`start_timestamp` >= '2010-07-01 00:00:00'
AND `quantities`.`start_timestamp` < '2010-07-02 00:00:00'
GROUP BY HOUR( `quantities`.`start_timestamp` );
+---------------------+---------------------+----------+
| start | end | total |
+---------------------+---------------------+----------+
| 2010-07-01 00:00:00 | 2010-07-01 01:00:00 | 0.677733 |
| 2010-07-01 01:00:00 …Run Code Online (Sandbox Code Playgroud) 我的数据是这样的:
data1_qqq_no_abc_ccc
data1_qqq_abc_ccc
data2_qqq_no_abc_ccc
data2_qqq_abc_ccc
data3_qqq_no_abc_ccc
data4_qqq_no_abc_ccc
data4_qqq_abc_ccc
Run Code Online (Sandbox Code Playgroud)
...
现在我想获取数据具有子串_no_abc_ccc的字段,但没有_abc_ccc.在上面的例子中,它的数据3
我正在尝试为它创建一个查询.粗糙的是
select SUBSTRING_INDEX(name, 'abc', 1)
from table1
where SUBSTRING_INDEX(name, 'abc', 1) not LIKE "%no"
and NOT IN (select SUBSTRING_INDEX(name, '_no_abc', 1)
from table
where name LIKE "%no_abc");
Run Code Online (Sandbox Code Playgroud)