是什么sql小提琴可以处理的限制? sql fiddle不编译任何内容,并且不返回任何错误消息 [英] is there a limit to what sql fiddle can handle? sql fiddle doesn't compile anything and returns no error messages
问题描述
我最近创建了一个成功编译并返回所需结果的查询。当我使用那段代码作为一个用户在stackoverflow上为我提供的另一段代码中的子查询时,我遇到了一些问题,最终解决了。我试图使用这个查询作为给我的代码片段中的子查询。但是,sql fiddle不返回任何东西。没有错误或编译的消息。当我试图把一个语法错误的目的,就像一个随机+符号,没有发生什么。是因为查询太长了吗?
架构
CREATE TABLE sampleData
/ pre>
(
id MEDIUMINT NOT NULL AUTO_INCREMENT,
timecode int,
count int,
PRIMARY KEY(id)
)
#ENGINE = MyISAM
;
INSERT INTO sampleData
(timecode,count)
VALUES
(1344893440,1),(1346014720,1),(1344898688,1), 1),(1345978368,1),
(1345959296,1),(1345064704,1),(1345156352,1),(1345225600,1),
(1345017984,1) 1),(1346019968,1),(1345834752,1),
(1345438464,1),(1344986880,1),(1345045632,1),(1345557888,1), 1345087232,1),(1345433216,1),(1345691008,1),
(1344917760,1),(1345253248,1),(1344934912,1),(1345890048,1),(1345272448,1) ,(1345829504,1),(1345798400,1),(1345203200,1),(1344741120,1),
(1345175552,1),(1344824192,1),(1344926336,1) 1),(1344931584,1),(1345211776,1),(1345059456,1),(1345516288,1),(1345441920,1),(1346009472,1)
查询
select t_0。*,
(coalesce(t_3.average_number_of_votes_per_previous_period_days,0) - coalesce(t_4.average_number_of_votes_per_previous_period_days,0))* 100.0
从
(选择t。*,
(t_1.count,0) - coalesce(t_2.count,0))* 100.0作为百分比增加百分比
从
(
SELECT sum(1) (SUM(t2.count)-t1.count)/(sum(1)-1)作为average_number_of_votes_per_previous_period_days作为聚合,计算作为累计的
t1.id,t1.day,t1.count,SUM
FROM
(SELECT id,date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t2
on t1.day> = t2.day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t
left outer join
(
SELECT sum(1)AS ordr,
t1.id,t1.day,t1.count,SUM )作为聚合,(SUM(t2.count)-t1.count)/(sum(1)-1)asaverage_number_of_votes_per_previous_period_days
FROM
(SELECT id,date(FROM_UNIXTIME(timecode))AS日期(FROM_UNIXTIME(timecode))原样,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME时间代码))AS天,(FROM_UNIXTIME(时间代码))AS原始,COUNT(1)作为'计数'
FROM sampleData
GROUP BY DAY)t2
on t1.day> = t2 .day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t_1
on t.ordr = t_1.ordr + 1 left outer join
(
SELECT sum(1)as ordr,
t1.id,t1.day,t1.count,SUM(t2.count)as aggregate,(SUM(t2.count)-t1count )/(sum(1)-1)asaverage_number_of_votes_per_previous_period_days
FROM
(SELECT id,date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)作为'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original, COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t2
on t1.day> = t2.day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t_2
on t.ordr = t_2.ordr + 2)t_0
左外连接
(选择t。*,
(coalesce(t_1.count,0) - coalesce(t_2.count,0))* 100.0作为百分比增加百分比
从
(
SELECT sum )AS ordr,
t1.id,t1.day,t1.count,SUM(t2.count)作为聚合,(SUM(t2.count)-t1.count)/(sum(1)-1)作为average_number_of_votes_per_previous_period_days
FROM
(SELECT id,日期(FROM_UNIXTIME(时间代码))AS日,(FROM_UNIXTIME(时间代码))AS原始,COUNT(1) $ b FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as' count'
FROM sampleData
GROUP BY DAY)t2
on t1.day> = t2.day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t
left outer join
(
SELECT sum(1)AS ordr,
t1.id,t1.day,t1.count,SUM (t1.count)作为聚合,(SUM(t2.count)-t1.count)/(sum(1)-1)asaverage_number_of_votes_per_previous_period_days
FROM
(SELECT id,date(FROM_UNIXTIME时间代码))AS日,(FROM_UNIXTIME(时间代码))AS原来的COUNT(1)为'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
日期(FROM_UNIXTIME(时间代码))AS日,(FROM_UNIXTIME(时间代码))AS原始,COUNT(1)为'计数'
FROM sampleData
GROUP BY DAY)t2
> = t2.day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t_1
on t.ordr = t_1.ordr + 1 left outer加入
(
SELECT sum(1)AS ordr,
t1.id,t1.day,t1.count,SUM(t2.count) (SELECT_ID,日期(FROM_UNIXTIME(时间代码))AS日,(FROM_UNIXTIME(时间代码))AS原来的,作为average_number_of_votes_per_previous_period_days
FROM
COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode) )AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t2
on t1.day> = t2.day
GROUP BY t1.day ,t1.count
ORDER BY t1.day
)t_2
on t.ordr = t_2.ordr + 2)t_3
on t.ordr = t_3.ordr + 1
left outer join
(选择t。*,
(coalesce(t_1.count,0) - coalesce(t_2.count,0))* 100.0作为%增加百分比
from
(
SELECT sum(1)AS ordr,
t1.id,t1.day,t1.count,SUM(t2.count)as aggregate, (SELECT id,date(FROM_UNIXTIME(timecode))AS day,(日期时间)(日期)(日期(时间代码))的日期(时间代码:t1.count)-t1.count)/(sum(1)-1)asaverage_number_of_votes_per_previous_period_days
FROM
FROM_UNIXTIME(timecode))AS原来的COUNT(1)为'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME(timecode)) AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t2
on t1.day> = t2.day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t
left outer join
(
SELECT sum(1)AS ordr ,
t1.id,t1.day,t1.count,SUM(t2.count)作为聚合,(SUM(t2.count)-t1.count)/(sum(1)-1)作为average_number_of_votes_per_previous_period_days
FROM
(SELECT id,date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t2
on t1.day> = t2.day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t_1
on t.ordr = t_1.ordr + 1 left outer join
(
SELECT sum(1)AS ordr,
t1.id,t1.day,t1。计数,SUM(t2.count)作为聚合,(SUM(t2.count)-t1.count)/(sum(1)-1)作为average_number_of_votes_per_previous_period_days
FROM
(SELECT id,date (FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t1
INNER JOIN
(SELECT date(FROM_UNIXTIME(timecode))AS day,(FROM_UNIXTIME(timecode))AS original,COUNT(1)as'count'
FROM sampleData
GROUP BY DAY)t2
t1.day> = t2.day
GROUP BY t1.day,t1.count
ORDER BY t1.day
)t_2
on t.ordr = t_2.ordr + 2)t_4
on t_0.ordr = t_4.ordr + 2
解决方案我在这中插入了您的查询,现在我看到了问题。您的查询超过8000个字符(8423),我不会在结果面板上显示该消息。基本上,这是一个显示错误在SQL小提琴,我没有注意到之前(所以,感谢您将这一点我的注意!)。
同时,您可以尝试删除一些字符,使其符合8000个字符的限制。
I recently created a query that compiles successfully and returns the desired result. When I used that piece of code as a subquery in another piece of code that a user on stackoverflow came up with for me, I encountered a few problems, which were ultimately solved. I attempted to use this query as a subquery in that piece of code given to me. However, sql fiddle doesn't return anything. No errors or compiled messages. When I tried putting in a syntax error on purpose-like a random + sign, nothing happened. is it because the query is too long?
schema
CREATE TABLE sampleData ( id MEDIUMINT NOT NULL AUTO_INCREMENT, timecode int, count int, PRIMARY KEY (id) ) #ENGINE=MyISAM ; INSERT INTO sampleData (timecode, count) VALUES (1344893440, 1), ( 1346014720, 1),( 1344898688,1),( 1345654784,1),( 1345978368,1), ( 1345959296,1), (1345064704,1), ( 1345156352,1),( 1345225600,1), (1345017984,1),( 1345640960,1),( 1346019968,1),( 1345834752,1), ( 1345438464,1),( 1344986880,1),( 1345045632,1),( 1345557888,1),( 1344973056,1),( 1345087232,1),( 1345433216,1),( 1345691008,1), ( 1344917760,1),( 1345253248,1),( 1344934912,1),( 1345890048,1),( 1345272448,1), (1345829504,1),( 1345798400,1),( 1345203200,1),( 1344741120,1), ( 1345175552,1),( 1344824192,1),( 1344926336,1),( 1345571712,1),( 1344931584,1),( 1345211776,1),( 1345059456,1),( 1345516288,1),( 1345441920,1),( 1346009472,1)
query
select t_0.*, (coalesce(t_3.average_number_of_votes_per_previous_period_days, 0) - coalesce(t_4.average_number_of_votes_per_previous_period_days, 0)) * 100.0 from (select t.*, (coalesce(t_1.count, 0) - coalesce(t_2.count, 0)) * 100.0 as "percentage increase in count in %" from ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day )t left outer join ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day )t_1 on t.ordr = t_1.ordr + 1 left outer join ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day ) t_2 on t.ordr = t_2.ordr + 2)t_0 left outer join (select t.*, (coalesce(t_1.count, 0) - coalesce(t_2.count, 0)) * 100.0 as "percentage increase in count in %" from ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day )t left outer join ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day )t_1 on t.ordr = t_1.ordr + 1 left outer join ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day ) t_2 on t.ordr = t_2.ordr + 2) t_3 on t.ordr = t_3.ordr + 1 left outer join (select t.*, (coalesce(t_1.count, 0) - coalesce(t_2.count, 0)) * 100.0 as "percentage increase in count in %" from ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day )t left outer join ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day )t_1 on t.ordr = t_1.ordr + 1 left outer join ( SELECT sum(1) AS ordr, t1.id,t1.day, t1.count, SUM(t2.count) as aggregate, (SUM(t2.count)-t1.count)/(sum(1)-1) as "average_number_of_votes_per_previous_period_days" FROM (SELECT id, date(FROM_UNIXTIME( timecode)) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t1 INNER JOIN (SELECT date(FROM_UNIXTIME( timecode) ) AS day,(FROM_UNIXTIME( timecode)) AS original, COUNT(1) as 'count' FROM sampleData GROUP BY DAY) t2 on t1.day >= t2.day GROUP BY t1.day, t1.count ORDER BY t1.day ) t_2 on t.ordr = t_2.ordr + 2) t_4 on t_0.ordr = t_4.ordr + 2
解决方案I've plugged your query in this fiddle, and I now see the problem. Your query is over 8000 characters long (8423 to be exact), and I'm not showing that message on the result panel. Basically, this is a display bug in SQL Fiddle that I've not noticed before (so, thanks for bringing this to my attention!).
In the mean time, you could try cutting out some of the characters to make it fit within the 8000 character limit.
这篇关于是什么sql小提琴可以处理的限制? sql fiddle不编译任何内容,并且不返回任何错误消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!