为什么这个列在ON子句中是未知的?(Why is this column unknown in ON clause?)
我有以下声明:
SELECT p1.order_id, p1.job_id, j1.`status` AS p1_status FROM wildcard_orders AS p1, wildcard_orders AS p2 LEFT JOIN wildcard_jobs AS j1 ON p1.job_id = j1.id LEFT JOIN wildcard_jobs AS j2 ON p2.job_id = j2.id WHERE p1.order_id = p2.order_id AND p1.job_id != p2.job_id
基本上,我试图获得在同一个表中具有不同
job_id
重复order_id
。我把它缩小到在
FROM
子句中包含相同的表但我相信我之前已经这样做了!我得到的确切错误是:
1054 - Unknown column 'p1.job_id' in 'on clause'
谁能帮忙解决原因?
I have the following statement:
SELECT p1.order_id, p1.job_id, j1.`status` AS p1_status FROM wildcard_orders AS p1, wildcard_orders AS p2 LEFT JOIN wildcard_jobs AS j1 ON p1.job_id = j1.id LEFT JOIN wildcard_jobs AS j2 ON p2.job_id = j2.id WHERE p1.order_id = p2.order_id AND p1.job_id != p2.job_id
Basically, I am trying to get duplicate
order_id
that have a differentjob_id
in the same table.I've narrowed it down to including the same table in the
FROM
clause but I am sure I have done this before!The exact error I get back is:
1054 - Unknown column 'p1.job_id' in 'on clause'
Can anyone help with why?
原文:https://stackoverflow.com/questions/46459299
最满意答案
如果您有一个包含
schema
的列root |-- date: timestamp (nullable = true)
然后,您可以使用
from_unixtime
函数将时间戳转换为字符串 ,然后使用from_unixtime
函数将时间戳转换为unix_timestamp
from pyspark.sql import functions as f df.withColumn("date", f.from_unixtime(f.unix_timestamp(df.date), "yyyy-MM-dd"))
你应该有
root |-- date: string (nullable = true)
If you have a column with
schema
asroot |-- date: timestamp (nullable = true)
Then you can use
from_unixtime
function to convert the timestamp to string after converting the timestamp to bigInt usingunix_timestamp
function asfrom pyspark.sql import functions as f df.withColumn("date", f.from_unixtime(f.unix_timestamp(df.date), "yyyy-MM-dd"))
and you should have
root |-- date: string (nullable = true)
相关问答
更多-
如果您有一个包含schema的列 root |-- date: timestamp (nullable = true) 然后,您可以使用from_unixtime函数将时间戳转换为字符串 ,然后使用from_unixtime函数将时间戳转换为unix_timestamp from pyspark.sql import functions as f df.withColumn("date", f.from_unixtime(f.unix_timestamp(df.date), "yyyy-MM-dd")) ...
-
转换日期格式yyyy-mm-dd => dd-mm-yyyy [duplicate](Convert date format yyyy-mm-dd => dd-mm-yyyy)[2022-02-24]
使用strtotime()和date() : $originalDate = "2010-03-21"; $newDate = date("d-m-Y", strtotime($originalDate)); (请参阅PHP站点上的strtotime和date文档)。 编辑 :请注意,这是对原始问题的快速解决方案。 对于更广泛的转换,您应该真正使用DateTime类来解析和格式:-) Use strtotime() and date(): $originalDate = "2010-03-21"; $ne ... -
Hive支持日期数据类型,但它需要以yyyy-MM-dd格式存储。 因此,为了让您存储日期数据类型,您需要将其转换为该格式。 select to_date(from_unixtime(unix_timestamp('01-01-2099','dd-MM-yyyy'))) Hive supports the date datatype, but it needs to be stored in the format yyyy-MM-dd. So in order for you to store a dat ...
-
您也不需要转换列。 实际上,最好不要转换列,因为在列上使用函数可以防止sql server使用任何可能有助于该列上的查询计划的索引。 此外,您正在将字符串转换为char(10) - 更好的是将其转换为日期: where date_column = convert(date, '2016-10-28', 126) 此外,如果您使用的是日期时间数据类型而不是日期,则需要检查日期时间值是否在您传递到下一个日期的日期之间。 You don't need to convert the column as well. ...
-
让大熊猫解析日期,但是随后几天应该交换: df['accepted_date'] = pd.to_datetime(df['accepted_date']) 所以更好的是使用to_datetime格式和参数errors='coerce' ,什么只与NaT返回匹配的日期时间为非匹配。 上次使用combine_first加入所有Series - NaT由另一Series的值替换: df = pd.DataFrame({'accepted_date':['2017-01-02','07-08-2017','20 ...
-
如果您知道列中的格式一致,则可以将其传递给to_datetime : df['sale_date'] = pd.to_datetime(df['sale_date'], format='%d/%m/%y %H:%M:%S') 如果您的格式不一定一致但在每种情况下都有前一个月,那么使用dayfirst=True可能就足够了,尽管如果没有看到数据这很难说: df['sale_date'] = pd.to_datetime(df['sale_date'], dayfirst=True) If you know ...
-
首先... Date或Timestamp对象具有自己的格式 ,因此您不必关心如何存储, 您需要在显示时更改格式,但不要在存储格式时更改格式 : 当你需要显示/打印时,使用SimpleDateFormat ,例如,如果你想以自己的格式显示Timestamp ( MM-dd-yyyy hh:mm:ss ),你必须这样做: SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy hh:mm:ss"); System.out.println("My date ...
-
我之前遇到过这个,它很糟糕。 很有可能,你有一个无法转换为日期时间的值,你需要找到它(或他们)。 尝试选择isdate(字符串列)= 0,看看是否有任何行显示。 修复它们或排除它们。 I have run into this before and it sucks. Very likely, you've got a value that can't be converted to a datetime, and you need to find it (or them). Try selecting wh ...
-
SSIS - 将未格式化的字符串日期转换为YYYY-MM-DD(SSIS - Converting unformatted strings dates to YYYY-MM-DD)[2023-11-06]
这项任务非常棘手,因为我们不仅处理未格式化的字符串日期,而且它们也不属于区域自然YYYY-MM-DD格式。 要解决这个问题,我们可以使用Derived Column的以下表达式: RIGHT([mydate],4) + "/" + SUBSTRING([mydate],FINDSTRING([mydate],"/",1) + 1,FINDSTRING([mydate],"/",2) - FINDSTRING([mydate],"/",1) - 1) + "/" + SUBSTRING([mydate],1, ... -
你有3个问题 你没有使用正确的时间分隔符 当你需要两个时,你只用了一个 你只需要两个M就可以了 尝试 DateTime date = DateTime.ParseExact(datestring, "M/d/yyyy h:m:s tt", System.Globalization.CultureInfo.InvariantCulture); string formattedDate = date.ToString("yyyy-MM-dd"); 你只需要一个M的原因是因为MM期望领先零。 由于日期和时间的值 ...