Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 多表内部联接_Sql_Sqlite - Fatal编程技术网

Sql 多表内部联接

Sql 多表内部联接,sql,sqlite,Sql,Sqlite,我有三个表,定义如下: merchant (name: string, price: integer) finance (no: string, gname: string, minCredit: integer) borrower (dname: string, gno: string, deliverydate: date) 示例数据集: merchant | finance | ally s jumbo jim b jumbo jimmy g smal

我有三个表,定义如下:

merchant (name: string, price: integer) 
finance (no: string, gname: string, minCredit: integer) 
borrower (dname: string, gno: string, deliverydate: date)
示例数据集:

merchant |  finance |
ally s      jumbo
jim b       jumbo
jimmy g     small
借款人.dname和借款人.gno是引用merchant.name和finance.no的外键

我正试图写一个查询,以找到借款人数量严格高于所有金融类型借款人平均数量的金融机构。我正在尝试输出财务编号(编号)

我所尝试的:

 select f.no as no
 from borrower b
 join merchant m on m.name = b.dname
 join finance f on f.no = b.gno
 where count(m.name) > avg(b.dname)

这似乎没有给我正确的结果。我认为我加入这个表是在正确的道路上,我相信我的问题在于where语句(?)有什么帮助让我走上正确的道路吗?

the
需要放在语句的末尾,而不是开头,除了@a_horse_和_no_name所说的以外,不仅仅是
放错了位置。它也是完全可选的,可以删除,因为它实际上根本不需要。
;WITH findata AS 
(SELECT
    f.no
    ,COUNT(*) Cnt
FROM
    finance f
GROUP BY 
    f.no)
SELECT 
    * 
FROM 
    findata
WHERE 
     Cnt > (SELECT AVG(Cnt) FROM findata)