我重写了一个从Mysql到oracle的查询,而Mysql给了我一行,oracle给出了倍数,只是想知道为什么?
Mysql查询
select me.col1,
me.col2,
me.col3,
min(col3) as me_col3 ,
group_concat(col2) col4,
from
my_sql_table me
group by me.col2
order by col3
重写为Oracle
select
me.col1,
me.col2,
me.
我正在编写一个复杂的MySQL查询。我的实际查询比我下面提到的复杂得多。
我有一个名为example的表,列是id、name、option_1、option_2。当然,id列是主键。我想像这样检索:
SELECT `id`,`name`,count(`option_1`),count(`option_2`)
我的问题是,我想分别对count(`option_1`)使用"GROUP BY `id`",对count(`option_2`)使用"GROUP BY `name`"。现在我必须在我的php代码中把它分解成多个代码。
如何在一个查询中实现我想要的结果?
我使用的是MySQL,我有以下表雇员:。
我做了一个选择年龄最大的人的练习。我知道正确的方法是使用子查询:SELECT name, dob FROM employees WHERE dob = (SELECT MIN(dob) FROM employees)。
然而,我这样做了:SELECT name, dob FROM employees HAVING dob = MIN(dob)。现在,它返回一个空集,但不会抛出任何错误。那么它到底能做什么呢?我读过,MySQL允许在refer子句中引用SELECT子句中的列,而不需要任何GROUP子句。但是为什么它会返回一个空集呢?
我的查询如下:
$result_portlist=mysql_query("
SELECT
portfolio AS the_port,
SUM(balance * course) AS the_balance,
SUM(insurance * course) AS the_insurance
FROM banks_all
WHERE CONCAT(balance, insurance)!='0'
GROUP BY portfolio
",$db);
$myro
我有这个MySql select查询,它似乎有一个bug,但是我很“绿色”,所以我根本看不见,所以也许您可以帮忙?
以下是查询:
SELECT node_id
FROM rate
WHERE node_id='".$cat_node_id_string."'
LIMIT ".$node_count_star.",".$node_count_end."
ORDER BY SUM(amount)
GROUP BY node_id
谢谢你提前帮忙..。
更新:
我会发布一个mysql错误让它更清楚..。
您的
让我简单地描述一下情况:我有两个表: producten和reviews,producten中存储了多个产品,而在评论中,我现在存储了所有的评论,而为了获得评论表mysql中的平均评等,mysql只返回1行,而我期望返回2行,因为我有2个产品。
我试图使用的查询是:
SELECT p.*, CAST(AVG(r.rating) AS DECIMAL(2,1)) as waardering FROM `producten` as p INNER JOIN `reviews` as r ON p.id=r.product_id
我也尝试过:
SELECT p.*, CAST(AVG(r.r
令人惊讶的是--这是一个在MySQL中非常有效的查询:
select X, Y from someTable group by X
如果您在Oracle或SQL Server中尝试此查询,您将得到自然错误消息:
Column 'Y' is invalid in the select list because it is not contained in
either an aggregate function or the GROUP BY clause.
那么MySQL如何确定为每个X显示哪个Y呢?它只会选择一个。据我所知,它只选取它找到的第一个Y。原因是,如果Y既不是聚合
通过阅读MySQL文档,我无法解释phpMyAdmin中这两个查询之间的区别:
SELECT * FROM f_ean GROUP BY ean HAVING type = 'media'
-->给我57059个结果
SELECT ean, type FROM f_ean GROUP BY ean HAVING type = 'media'
-->给我73201个结果
只显示不同的列,查询的结果号怎么会不同呢?
我一直在处理一个运行以下查询的应用程序:
SELECT m.*, GROUP_CONCAT(g.title) as genres
FROM movie m
INNER JOIN genre_movie gm ON gm.movie_id = m.id
INNER JOIN genre g ON gm.genre_id = g.id
WHERE m.imdb_id = '454876'
当我在查询浏览器中或直接通过SSH运行查询时,它返回以下结果(示例:)
在我的PHP代码中,我执行以下操作来循环这些类型:
<?php $get = mysql_query($q
我几乎筋疲力尽地调整查询,最后想到在这里发布这个问题以获得帮助。我有一个mysql表如下所示。我使用Nodejs编写代码,并使用jdbc连接器访问数据库。
name subject class score
Harry science 8 60
John Science 9 65
Harry Maths 8 80
Harry English 9 50
Mike Maths 8 90
John English 8 60
当我进行查询时,我需要得到“按名称分组”和"class=8“的结果。我知道我可以返回"cla
我正在尝试解决如何使用用户输入动态创建一个有说服力的查询,根据输入的长度更改查询。使用直接的MySQL很简单...只需根据用户输入连接查询字符串。使用Eloquent是不可能的,除非您a)使用‘原始’sql查询,这违背了使用Eloquent的目的,或者b)使用一些非常不健康的东西,如eval()函数。
如何遍历未知长度的用户输入并创建一个雄辩的查询,该查询使用“OR”和“and”的组合在多个字段中搜索单词
考虑一下下面的伪代码,它实际上不能工作。
$search = "cat sat on the mat";
$searchWords = explode(' '
在升级到MySQL 8.0之前,我以前使用GROUP BY不选择重复项,但现在我得到了:
1055 - SELECT list的表达式#2不是按子句分组,而是包含非聚合列'database.orders.ID‘,它在功能上不依赖于按子句分组的列;这与sql_mode=only_full_group_by不兼容,时间:0.02800s
我知道我可以按以下方式更改mysql模式:
mysql -u root -p
mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY'
如何在php中实现数组设计和函数来实现下表。数据将从mysql数据库中提取,但我想限制所需的mysql查询的数量,因此使用某种格式化的数组。
-----------------------------------------
| | 2009 | 2008 | 2007 | 2006 |
-----------------------------------------
| country a | d d | | doc | doc |
| country b | | doc | doc | |
| country c | doc
接受我最好的祝愿,亲爱的朋友们,我有一个与mysql表相关的问题。实际上我有一张这样的桌子
现在,我想查询每个产品代码的最后一次购买税。为此,我使用以下mysql查询:
SELECT DISTINCT PROD_CODE, PURCHASE_TAX
FROM PRODUCT_STOCK
WHERE PROD_CODE
IN ( 5300, 'BLUEBOOK' )
ORDER BY ID DESC
LIMIT 0 , 30
执行此mysql返回结果集,如下所示
正如您在结果集中所看到的,mysql返回相关产品的所有行。而我只想要最后一排。请帮帮我
在我的旧MYSQL数据库中,我使用以下MYSQL查询。因为我将我的数据库迁移到mongoDB,所以我必须迁移查询。
在我的旧mysql数据库中,我使用了以下查询
SELECT idValue,
Timestamp,
Value
FROM (
SELECT *
FROM Metingen2
WHERE idGroep = 123
ORDER BY idValue ASC ,
Timestamp DESC
)
AS t GROUP BY t.idValu
在不存在匹配行的情况下对下表运行查询时,使用PHP mysql_num_rows()将返回"1“。
经过测试,我发现这个问题是在查询中使用SUM()函数时出现的。如果我从查询中取出SUM(),mysql_num_rows()会像它应该返回的那样返回"0“。
有没有其他东西我应该用来代替mysql_num_rows()来查询表中是否有匹配的行?
表:
name | students_money | grade
George | 5 | A
Bill | 10 | A
Dan | 7 | A
代码:
$sql = "SELECT SUM(students_money) AS
我在一个mysql表上查询自动补全功能,该表有许多类似标题的实例,通常是不同年份的东西,例如'2010 Chevrolet Lumina‘或'Chevrolet Lumina 2009’等。
我目前使用的查询是:
$result = mysql_query("SELECT * FROM products WHERE MATCH (name) AGAINST ('$mystring') LIMIT 10", $db);
$mystring变量的构建方式如下:
$queryString = addslashes($_REQUEST['quer
下面是伪查询,所以我不关心结果,但是有什么不同(性能、结果数量等)吗?在下面的MySQL查询之间?
查询1
SELECT u.`username`, COUNT(*) AS 'posts', u.`age`
FROM `users` u
INNER JOIN `posts` p
ON p.`user_id`=u.`id`
GROUP BY u.`id`
HAVING u.`age` > 12
假设该查询中的列smth是为了HAVING条件而选择的,因此在结果中不需要它的值。
查询2
SELECT u.`username`, COUNT(*) AS 'posts
class Config(models.Model):
id = models.IntegerField(max_length=20, primary_key=True)
appid = models.IntegerField(max_length=20)
status = models.IntegerField(max_length=2)
user_id = models.ForeignKey(User)
name = models.IntegerField(max_length=10,null=False,default='0
我很难将MySQL查询转换为C#中的linq语法(用于实体框架)。MySQL查询如下所示:
SELECT *
FROM Availability as tableData
WHERE ID = (
SELECT Availability.ID
FROM Availability
WHERE Availability.FrameID = tableData.FrameID
ORDER BY Availability.Date DESC limit 1)
我不知道如何转换这部分FROM table AS someName。
到目前为止,我唯一的解决方案是执行原始SQL查询,如:
dataCo
我有以下两个mysql表:
mysql> desc subscriptions;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(6) | NO | PRI | NUL
我的一个MySQL查询遇到了问题:
SELECT id,Portfolio,Agency,Program,Objective,billion1,value11_12,
Proportion1,billion,value12_13,Percentage,Difference,
Diff_Percent,PIT,TOS,Actual_PIT,Actual_TOS,SUM(billion),SUM(Percentage),
SUM(PIT),SUM(TOS),SUM(Actual_PIT),SUM(Actual_TOS)
FROM budget_table
GROUP BY
我有一个SQL查询,如下所示:
SELECT A.*, C.value
FROM A
JOIN B ON B.group = A.group
JOIN C ON C.a = A.id
GROUP BY A.group
此查询返回一定数量的行。由于GROUP BY,如果A.group有相同值的多行,我将尝试指定想要的行--因此我添加了一个which子句:
SELECT A.*, C.value
FROM A
JOIN B ON B.group = A.group
JOIN C ON C.a = A.id
GROUP BY A.group
HAVING C.value = MIN(C.value)
在尝试将MySQL查询转换为MsSql查询时,会遇到麻烦。
错误声明:
列'books.id‘在select列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。
这个密码糟透了。
SELECT * FROM books group by books.category_id
供参考
提前谢谢!!
我对MySQL相当陌生,很难理解为什么下面的查询是这样工作的:
select user, COUNT(*) c FROM user_rows GROUP BY user HAVING c > 1 ORDER BY c;
现在,输出是正确的:它列出了一个用户以及他们在user_rows表中有多少行。
我的问题是为什么COUNT(*)不只是返回user_rows表中的行数?这是一种行动命令吗?只是想得到更清晰的信息以供将来参考。
我目前正在设置一个监视器来监视云SQL DB中的慢查询。我构建了一个自定义查询来让进程在SQL服务器上运行,因为目前缓慢的查询监控直到进程完成才会报告。为了在5分钟内每隔15-20秒(或在DD中配置的任何内容)检查一次当前运行的查询,我在DD代理的配置中设置了以下内容。
custom_queries:
- query: SELECT COUNT(*) as processes FROM INFORMATION_SCHEMA.PROCESSLIST WHERE TIME >
(5 * 60 * 1000);
columns:
我已经在MySQL中尝试了下面的查询,但不起作用。
select count(*)
from (
select count distinct(RADL_REQUEST_MSISDN)
from rbt_activation_details_log
where RADL_ACTIVE ='A'
group by RADL_REQUEST_MSISDN
);
我有一个mysql查询
select count(*) as TotalCount,
pd.Product_Modified_Date,
psc.Product_Subcategory_Name,
pd.Product_Image_URL
from product_subcategory psc
inner join product_details pd on psc.Product_Subcategory_ID = pd.Product_Subcategory_Reference_ID
where
我有一套记录,大约有一百万张。我正在查询记录以报告每月的数字。
下面的MySQL查询大约在0.3秒内执行
SELECT SUM(total), MONTH(create_datetime), YEAR(create_datetime)
FROM orders GROUP BY MONTH(create_datetime), YEAR(create_datetime)
然而,我无法找到一个实体框架lambda表达式,它可以以同样快的速度执行。
我想出的唯一实际可行的说法是
var monthlySales = db.Orders
.Select(c =
是否有任何方法按数据按唯一的month分组,但我也需要选择no_inv和date_inv列。
Mysql查询:
SELECT no_inv, date_inv, SUM(total_unpaid) AS unpaid, SUM(total_paid) AS paid
FROM invoice
GROUP BY MONTH(date_inv)
LIMIT 3