问题:查找包含最短,最长和平均长度文本消息的推文。
我的SQL查询:
<% if flash[:notice] %>
<div class="notice"><%= flash[:notice] %></div> <% end %>
<div class="login-page"> <div class="form">
<form class="register-form">
<input type="text" name="login[email]" placeholder="Email"/>
<input type="password" name="login[senha]" placeholder="Senha"/>
<button>Cadastrar</button>
<p class="message">Já é registrado? <a href="#">Login</a></p>
</form>
<form class="login-form" action="/login/acessorecebendo" method="post">
<input type="text" name="login[email]" placeholder="email"/>
<input type="password" name="login[senha]" placeholder="password"/>
<button>login</button>
<p class="message">Não está registrado <a href="#">Criar uma conta</a></p>
</form>
<% if session[:user] %>
<a href="/login/sair">Sair sessão <%= @user.nome %> </a>
<% end %> </div> </div>
但结果显示:
OperationalError:near&#34; SELECT&#34 ;:语法错误
答案 0 :(得分:0)
你很亲密。但是JOIN
是更好的方法:
SELECT t.*
FROM Tweet t JOIN
(SELECT max(length(text)) as maxt, min(length(text)) as mint,
avg(length(text)) as avt
FROM Tweet
) tt
on length(t.text) in (tt.maxt, tt.mint, tt.avgt);
我不认为avg(length(text))
有意义,除非你发言或以某种方式将其转换为整数。也就是说,某些数据库将返回avg()
的整数,因此它可能在您的数据库中有效。
您的查询不起作用,因为子查询返回三列;然而,它只是被比作一个。某些数据库允许使用in
的元组。即便如此,操作数的长度也不匹配。